2017ACM-ICPC北京赛区

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\n", p,q);

    }
    return 0;
}
View Code

 


F: Secret Poems

题意

看图说话

 

分析

就是给一种排列方式,转化成回字形,大力模拟

 

posted @ 2017-12-03 16:14  Superwalker  阅读(210)  评论(0编辑  收藏  举报