E: Cats and Fish
题意
有n只猫,和m条鱼,第i只猫吃掉一条鱼所花的时间为c[i],一只猫,吃完一个会继续吃(如果还有的话)问在x时刻后有多少条鱼留下(分别输出完整的和不完整的)
分析
暴力for一遍,trick:给每只猫设置一个标记表示i秒的时候,它吃的鱼还剩多少,这样方便统计,便于模拟啊
#include <bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) #define pii pair<int,int> #define fi first #define se second #define mp make_pair using namespace std; const int maxn = 100+3; const int maxm = 1e5+10; int n,m,x; struct node { int c,s; friend bool operator < (node a, node b) { return a.c<b.c; } }a[maxn]; int p,q; int main() { while(scanf("%d%d%d", &m, &n, &x)!=EOF) { rep(i,1,n) { scanf("%d", &a[i].c); a[i].s=0; } sort(a+1, a+n+1); int p=m,q=0; for(int i=1;i<=x;i++) { //p=m; for(int j=1;j<=n;j++) { if(p>0) { if(a[j].s==0) { a[j].s=a[j].c; p--; } } else break; } for(int j=1;j<=n;j++) { if(a[j].s>0) { a[j].s--; } } } for(int i=1; i<=n;i++) { if(a[i].s>0) q++; } printf("%d %d ", p,q); } return 0; }
F: Secret Poems
题意
看图说话
分析
就是给一种排列方式,转化成回字形,大力模拟