题目链接:http://codeforces.com/contest/556/problem/C

题目意思:有 n 个数(1,2,...,n)组成 k 条链。第 i 条链由 mi 个数组成。每一秒只可以做其中一件事:(1)将链i连到只有一个数的链 j 中(链 i 的最大值比只由单个数组成的链 j 还要小);(2)将链上最大的数从链中分离。 然后我们最终是要得到一条1,2,3,。。。n。问最少需要连接的秒数。

  不难推出,我们需要找到编号为 1 的链包含多少个数,然后对于此链的其他数,我们需要先分离然后连接。其他链也需要先分离再连接,注意,对于某条含有 x 个数的链,分离的秒数为 x - 1,而连接的秒数为 x 。 那现在问题就转化为如何找出包含 1 的链最长为多少(数是连续的!)

  假设包含 1 的链为 cnt,那么最少的秒数应为 2(n - (k-1) - cnt) + (k-1) 。2(n - (k-1) - cnt) 这个表示所有需要分离和连接的总数,但由于每条链分离秒数是比连接的秒数少1的,所以需要加回 k -1 !

  

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std; inline int Getint()
{
char ch = getchar();
while (ch < '' || ch > '')
ch = getchar();
int ret = ;
while (ch >= '' && ch <= '') {
ret = ret * + ch - '';
ch = getchar();
}
return ret;
} int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int n, k, m, a;
// while (scanf("%d%d", &n, &k) != EOF) {
n = Getint(), k = Getint();
int cc = ;
for (int i = ; i < k; i++) {
m = Getint(), a = Getint();
int cnt = ;
if (a == ) {
cnt = ; // 序列第一个数就是 1 ,否则就是序中或序尾出现 1
}
for (int j = ; j <= m; j++) {
a = Getint();
if (cnt == j- && a == j) {
cnt++;
}
}
if (cnt) cc = cnt;
}
printf("%d\n", *(n-(k-)-cc)+(k-));
// }
return ;
}

codeforces 556C. Case of Matryoshkas 解题报告的更多相关文章

  1. CodeForces - 556C Case of Matryoshkas

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  2. CodeForces - 556C Case of Matryoshkas (水题)

    Andrewid the Android is a galaxy-famous detective. He is now investigating the case of vandalism at ...

  3. Codeforces Educational Round 92 赛后解题报告(A-G)

    Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...

  4. codeforces 476C.Dreamoon and Sums 解题报告

    题目链接:http://codeforces.com/problemset/problem/476/C 题目意思:给出两个数:a 和 b,要求算出 (x/b) / (x%b) == k,其中 k 的取 ...

  5. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  6. codeforces 518B. Tanya and Postcard 解题报告

    题目链接:http://codeforces.com/problemset/problem/518/B 题目意思:给出字符串 s 和 t,如果 t 中有跟 s 完全相同的字母,数量等于或者多过 s,就 ...

  7. codeforces 507B. Amr and Pins 解题报告

    题目链接:http://codeforces.com/problemset/problem/507/B 题目意思:给出圆的半径,以及圆心坐标和最终圆心要到达的坐标位置.问最少步数是多少.移动见下图.( ...

  8. codeforces 500B.New Year Permutation 解题报告

    题目链接:http://codeforces.com/problemset/problem/500/B 题目意思:给出一个含有 n 个数的排列:p1, p2, ..., pn-1, pn.紧接着是一个 ...

  9. codeforces B. Xenia and Ringroad 解题报告

    题目链接:http://codeforces.com/problemset/problem/339/B 题目理解不难,这句是解题的关键 In order to complete the i-th ta ...

随机推荐

  1. Ruby学习之module

    我们可以认为module是一个专门存放一系列方法和常量的工具箱. module和class非常像, 只是module不能创建实例也不能有子类, 它们仅仅能存放东西. 例如: module Circle ...

  2. mysql 表锁问题

    select * from information_schema.INNODB_lock_waits; select * from information_schema.INNODB_locks; S ...

  3. Cotex-M3内核LPC17xx系列时钟及其配置方法

    一.背景: 最近正在接手一个项目,核心芯片既是LPC17XX系列MCU,内核为ARM的Cotex-M3内核. 想要玩转一个MCU,就一定得搞定其时钟! 时钟对MCU而言,就好比人类的心脏.由其给AHB ...

  4. C#第一次的Hello World

    这个Hello World是最基础的,在程序默认生成的using System下,不用自己可以的去写using System. 我们要牢记compling and running和running wi ...

  5. mac 下 xampp 多域名 多站点 多虚拟主机 配置

    前言:最近用mac工作了,需要搭建个调试前段程序的站点,选了xampp,需求是能同时运行多个站点,多个域名,目录自定义,网上找了好多资料,都感觉有些不符合心意,且复制文确实很多,甚至有些没实践过的在乱 ...

  6. ubutu安装搜狗

    1.下载deb文件 下载32位 wget "http://pinyin.sogou.com/linux/download.php?f=linux&bit=32" -O &q ...

  7. Asp.Net网页头部动态加载标题、描述、关键字、css和js文件的方法

    首先head标签上添加runat="server". protected void Page_Load(object sender, EventArgs e) { Page.Tit ...

  8. 【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列

    此文是根据赵磊在[QCON高可用架构群]中的分享内容整理而成.转载请事先联系赵磊及相关编辑. 赵磊,Uber高级工程师,08年上海交通大学毕业,曾就职于微软,后加入Facebook主要负责Messen ...

  9. java自定义标签 权限

    <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java ...

  10. Open CV缩放图像

    缩放图像是图像处理中需要经常使用的操作.太小的图像在图像识别中不能很好的处理,需要将其放大,太大的图像不方便储存,需要将其缩小,下面记录OpenCV图片缩放方法. 缩放函数 , , int inter ...