Case of Matryoshkas CodeForces - 556C

题意:俄罗斯套娃娃。你们都懂得。 然后给定n(娃娃个数),m(几组关系),每组关系中第一个数字是num,代表后面有几个娃娃。问最少花多少时间能把娃娃从1~n套好;

思路:对于能从1开始连续的,一定可以不用拆,连着就好了。然后后面统统都要拆,这样时间才会最短

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+500;
int a[maxn];
int main(void)
{
    int n,m;
    cin >> n >> m;
    int ans=0;
    for(int i=1; i<=m; i++)
    {
        int num;
        scanf("%d",&num);
        int x,temp;
        int flag=0;
        scanf("%d",&x);temp=x;
        if(x==1)    flag=1;
        for(int j=2; j<=num; j++)
        {
            scanf("%d",&x);
            if(flag==1 && x==temp+1)
            {
                temp=x;
                continue;
            }
            if(x==1)
            {
                temp=x;
                flag=1;
            }
            else
            {
                flag=0;ans++;
            }
        }

    }
    ans=ans+ans+m-1;
    cout << ans << endl;
}

// 这题在最后2分钟A出来了,妙不可言。

1.学习一定要静下心来,题目要仔细看要求.
2.有诗人的想象,你可以的!

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务