別のゲームをプレイしたので、学校が始まろうとしています。!!(犬の頭はまだパッチです
A - Takoyaki
質問にサインイン
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
int n,x,t;
int main()
{
cin>>n>>x>>t;
cout<<(n+x-1)/x*t<<endl;
return 0;
}
B-9の倍数
学校のゲームを最初にプレイしたときにも同様の質問がありましたが、
この質問は数値が9の倍数であるという結論を直接示しています。必要十分な条件は、10進法の各桁の合計が
直接9の倍数であることです。模擬質問です
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
string s;
int main()
{
cin>>s;
ll res=0;
for(auto t:s) res+=t-'0';
if(res%9==0) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}
C-ステップ
last
一番大きな数字を前に記録してから、回答を更新してください
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=200010;
int a[N],n;
int main()
{
cin>>n;
int last=0;
ll res=0;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
if(a[i]<last) res+=last-a[i];
else last=a[i];
}
cout<<res<<endl;
return 0;
}
D-迷路の魔法使い
Defs bfs、魔法のコストは1で、他のコストは0です。更新してください。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<vector>
#include<set>
#include<map>
#include<deque>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=1010;
pii start,ed;
int n,m;
char g[N][N];
int dist[N][N];
bool st[N][N];
void bfs()
{
memset(dist,0x3f,sizeof dist);
deque<pii> q;
dist[start.x][start.y]=0;
q.push_front(start);
int dx[]={
0,0,1,-1},dy[]={
1,-1,0,0};
while(q.size())
{
auto t=q.front();q.pop_front();
if(st[t.x][t.y]) continue;
st[t.x][t.y]=1;
int d=dist[t.x][t.y];
int a,b;
for(int i=0;i<4;i++)
{
a=t.x+dx[i],b=t.y+dy[i];
if(a<1||b<1||a>n||b>m||g[a][b]=='#'||dist[a][b]<=d) continue;
dist[a][b]=d;
q.push_front({
a,b});
}
for(int i=t.x-2;i<=t.x+2;i++)
{
if(i<1||i>n) continue;
for(int j=t.y-2;j<=t.y+2;j++)
{
if(j<1||j>m||g[i][j]=='#'||dist[i][j]<=d+1) continue;
dist[i][j]=d+1;
q.push_back({
i,j});
}
}
}
}
int main()
{
cin>>n>>m;
cin>>start.x>>start.y;
cin>>ed.x>>ed.y;
for(int i=1;i<=n;i++) cin>>g[i]+1;
bfs();
if(dist[ed.x][ed.y]==0x3f3f3f3f) cout<<-1<<endl;
else cout<<dist[ed.x][ed.y]<<endl;
return 0;
}
E-爆撃機
解決策を列挙して書くのが面倒だ
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<vector>
#include<set>
#include<map>
#include<deque>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=300010;
int n,m;
int k;
map<pii,int> mp;
int col[N],row[N];
int maxr,maxc;
vector<int> a,b;
int main()
{
cin>>n>>m>>k;
while(k--)
{
int a,b;
cin>>a>>b;
mp[{
a,b}]=1;
row[a]++;
col[b]++;
maxr=max(maxr,row[a]);
maxc=max(maxc,col[b]);
}
for(int i=1;i<=n;i++)
if(row[i]==maxr) a.push_back(i);
for(int j=1;j<=m;j++)
if(col[j]==maxc) b.push_back(j);
for(int i=0;i<a.size();i++)
for(int j=0;j<b.size();j++)
if(mp[{
a[i],b[j]}]==0)
{
cout<<maxr+maxc<<endl;
return 0;
}
cout<<maxr+maxc-1<<endl;
return 0;
}
F
Fはそれが補われるかどうか知りません。最初の鳩、
さあ〜