洛谷试炼场 - 关卡2-1 - 简单的模拟 - (Done)
最近这段时间感冒外加一些乱七八糟的事情,导致脑子严重僵化……只好刷刷基础(水)题巩固巩固基础(混混题数)。
目录
#include<bits/stdc++.h> using namespace std; const int maxn=1e4+10; int n,x,y; int a[maxn],b[maxn],g[maxn],k[maxn]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]); scanf("%d%d",&x,&y); int ans=-1; for(int i=n;i>=1;i--) { if(a[i]<=x && b[i]<=y && a[i]+g[i]>=x && b[i]+k[i]>=y) { ans=i; break; } } printf("%d\n",ans); }
#include<bits/stdc++.h> using namespace std; int n; int main() { while(cin>>n) { for(int i=n,c;i>=0;i--) { scanf("%d",&c); if(c==0) continue; else if(c>0) { if(i<n) printf("+"); if(c>1) printf("%d",c); if(i>1) printf("x^%d",i); else if(i==1) printf("x"); else if(c==1) printf("1"); } else { printf("-"); if(-c>1) printf("%d",-c); if(i>1) printf("x^%d",i); else if(i==1) printf("x"); else if(-c==1) printf("1"); } } printf("\n"); } }
#include<bits/stdc++.h> using namespace std; const int maxn=1e3+5; int m,n; int vis[maxn]; queue<int> Q; inline void Push(int x) { if(Q.size()>=m) { vis[Q.front()]=0; Q.pop(); } vis[x]=1; Q.push(x); } int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin>>m>>n; int ans=0; for(int i=1,x;i<=n;i++) { cin>>x; if(!vis[x]) Push(x), ans++; } cout<<ans<<endl; }
#include<bits/stdc++.h> using namespace std; const int maxn=1e3+5; int m,n,k,l,d; struct Node{ int idx,cnt; }r[maxn],c[maxn]; bool cmp1(Node a,Node b) { return a.cnt>b.cnt; } bool cmp2(Node a,Node b) { return a.idx<b.idx; } int main() { scanf("%d%d%d%d%d",&m,&n,&k,&l,&d); for(int i=1;i<m;i++) r[i].idx=i, r[i].cnt=0; for(int i=1;i<n;i++) c[i].idx=i, c[i].cnt=0; for(int i=1,x,y,p,q;i<=d;i++) { scanf("%d%d%d%d",&x,&y,&p,&q); if(x==p) //同行 c[min(y,q)].cnt++; else //同列 r[min(x,p)].cnt++; } sort(r+1,r+m,cmp1); sort(r+1,r+k+1,cmp2); for(int i=1;i<=k;i++) printf("%d%c",r[i].idx,i<k?' ':'\n'); sort(c+1,c+n,cmp1); sort(c+1,c+l+1,cmp2); for(int i=1;i<=l;i++) printf("%d%c",c[i].idx,i<l?' ':'\n'); }
#include<bits/stdc++.h> using namespace std; typedef pair<int,int> pii; const int MAX=205; int n,A,B; int a[MAX],b[MAX]; int vs[5][5]={ {0,0,1,1,0}, {1,0,0,1,0}, {0,1,0,0,1}, {0,0,1,0,1}, {1,1,0,0,0} }; int main() { cin>>n>>A>>B; for(int i=0;i<A;i++) cin>>a[i]; for(int i=0;i<B;i++) cin>>b[i]; pii res=make_pair(0,0); for(int i=0;i<n;i++) { res.first+=vs[a[i%A]][b[i%B]]; res.second+=vs[b[i%B]][a[i%A]]; } cout<<res.first<<' '<<res.second; }
#include<bits/stdc++.h> using namespace std; typedef pair<bool,string> P; vector<P> v; int n,m; int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); v.clear(); cin>>n>>m; for(int i=1;i<=n;i++) { bool d; string e; cin>>d>>e; v.push_back(make_pair(d,e)); } int p=0; for(int i=1;i<=m;i++) { bool d; int s; cin>>d>>s; if(v[p].first) //朝外 { p+=d?-s:s; while(p<0) p+=n; p%=n; } else //朝内 { p+=d?s:-s; while(p<0) p+=n; p%=n; } } cout<<v[p].second; }
转载请注明出处:https://dilthey.cnblogs.com/