A. Stock Arbitraging 直接上代码: #include<cstdio>#include<cstring>#include<iostream>#include<algorithm
... .
A. Stock Arbitraging
直接上代码:
.#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<stack>#include<set>#include<map>#include<vector>#include<cmath>const int maxn=1e5+5;typedef long long ll;using namespace std;int main(){ int n,m,r; cin>>n>>m>>r; int x; int minn=0x3f3f3f3f; for(int t=0;t<n;t++) { scanf("%d",&x); minn=min(minn,x); } int maxnn=0; for(int t=0;t<m;t++) { scanf("%d",&x); maxnn=max(maxnn,x); } if(maxnn<=minn) { cout<<r<<endl; } else { int k=r; r=r%minn; r+=(maxnn)*(k/minn); cout<<r<<endl; } return 0;}.
B. Tiling Challenge
找一下就行了
代码:
.#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<stack>#include<set>#include<map>#include<vector>#include<cmath>const int maxn=1e5+5;typedef long long ll;using namespace std;char Map[55][55];int n;int dir[4][2]={{0,1},{0,-1},{-1,0},{1,0}};bool check(int x,int y){ if(x>=0&&x<n&&y>=0&&y<n) { return true; } else { return false; }}int main(){ cin>>n; getchar(); for(int t=0;t<n;t++) { scanf("%s",Map[t]); } for(int t=0;t<n;t++) { for(int j=0;j<n;j++) { int sum=0; if(Map[t][j]==‘.‘) { for(int k=0;k<4;k++) { int xx=t+dir[k][0]; int yy=j+dir[k][1]; //cout<<xx<<" "<<yy<<endl; if(check(xx,yy)&&Map[xx][yy]==‘.‘) { sum++; } } } if(sum==4) { Map[t][j]=‘#‘; for(int k=0;k<4;k++) { int xx=t+dir[k][0]; int yy=j+dir[k][1]; Map[xx][yy]=‘#‘; } } } } bool flag=true; for(int t=0;t<n;t++) { for(int j=0;j<n;j++) { if(Map[t][j]==‘.‘) { flag=false; } } } if(flag) { cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } return 0;}.
C. Prefix Sum Primes
思维+构造也很好想
代码;
.#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<stack>#include<set>#include<map>#include<vector>#include<cmath>const int maxn=1e5+5;typedef long long ll;using namespace std;vector<int>v1,v2;int main(){ int n; cin>>n; int x; for(int t=0;t<n;t++) { scanf("%d",&x); if(x==1) v1.push_back(x); else { v2.push_back(x); } } if(v1.size()==n) { vector<int>::iterator it=v1.begin(); for(it=v1.begin();it!=v1.end();it++) { cout<<*it<<" "; } } else if(v2.size()==n) { vector<int>::iterator it=v2.begin(); for(it=v2.begin();it!=v2.end();it++) { cout<<*it<<" "; } } else { cout<<"2 1 "; int xx=v1.size()-1; int yy=v2.size()-1; for(int t=0;t<yy;t++) { cout<<"2 "; } for(int j=0;j<xx;j++) { cout<<"1 "; } } return 0;}. . .. ...