• cf 556C Case of Matryoshkas


    http://codeforces.com/contest/556/problem/C

    果然一晚上不睡觉会导致读错题么...

    需要注意的是 如果有一个是 1 2 4 6  那么 1,2是不必拆开的....

    然后我们发现,只有以1为开始且连续的套娃不必拆开....

    可以先假设所有都需要拆开,那么一共需要 2*n-k-1次

    然后如果有以1为开始连续的,拆的时候少拆一次,装的时候少装一次,所以ans=ans-2

    但是需要注意的是....如果只有一个1,比如1 3 5  也算成了长度为1的以1开始连续的,但是这并没有什么卵用....所以最后答案记得ans+2

    /*************************************************************************
        > File Name: code/cf/556C.cpp
        > Author: 111qqz
        > Email: rkz2013@126.com 
        > Created Time: 2015年07月12日 星期日 10时24分54秒
     ************************************************************************/
    
    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<string>
    #include<map>
    #include<set>
    #include<queue>
    #include<vector>
    #include<stack>
    using namespace std;
    typedef long long LL;
    typedef unsigned long long ULL;
    const int N=1E5+7;
    int a[N],m[N];
    LL n,k,ans;
    int main()
    {
        cin>>n>>k;
        ans = 2*n-k+1;
        for (int i = 0 ; i < k ; i++ )
        {
          scanf("%d",&m[i]);
          for (int j = 0 ; j < m[i];j++)
          {
            scanf("%d",&a[j]);
            if (a[j]==j+1)
                ans = ans -2;
    
          }
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    二分优化lis和STL函数
    D8 双连通分量
    Apicloud 之按两次后退键退出应用
    Js 之正则验证手机号、QQ、身份证等
    PHP 之循环创建文件夹
    招聘系统
    Mysql 之根据经纬度按距离排序
    PHP 之根据两个经纬度计算距离
    PHP 之Mysql优化
    Tkinter 之使用PAGE工具开发GUI界面
  • 原文地址:https://www.cnblogs.com/111qqz/p/4640717.html
Copyright © 2020-2023  润新知