一、题目

点此看题

二、解法

观察到ccc不是很大,我们可以算出相邻两个串满足第一个串比第二个串字典序小的可行区间,最后取这些区间的并集就可以算答案。

可行区间怎么求呢?我们找到第一个不一样的位置(如果没有就比较长度),这样只用考虑两个数在模c+1c+1c+1的大小比较,手玩小数据可以发现这样的取值是连续的,但我们需要分第一个数更大///第一个数更小来讨论,自己模拟一下吧,就不给结论了(我模拟的是3,7,c=103,7,c=103,7,c=10 和 7,3,c=107,3,c=107,3,c=10)

然后差分一下就行了。

#include <cstdio>
#include <vector>
using namespace std;
const int M = 500005;
int read()
{int x=0,f=1;char c;while((c=getchar())<'0' || c>'9') {if(c=='-') f=-1;}while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
int n,c,l[M],b[2*M];
vector<int> a[M];
signed main()
{n=read();c=read();for(int i=1;i<=n;i++){l[i]=read();for(int j=0;j<l[i];j++)a[i].push_back(read());if(i>1){int f=0;for(int j=0;j<min(l[i],l[i-1]);j++)if(a[i-1][j]!=a[i][j]){if(a[i-1][j]<a[i][j]){b[0]++;b[c-a[i][j]+1]--;b[c-a[i-1][j]+1]++;b[c+1]--;}else{b[c-a[i-1][j]+1]++;b[c-a[i][j]+1]--;}f=1;break;}if(f==0 && l[i-1]<=l[i]){b[0]++;b[c+1]--;}}}for(int i=0;i<c;i++){if(i>0) b[i]+=b[i-1];if(b[i]==n-1){printf("%d\n",i);return 0;}}puts("-1");
}

CF731D 80-th Level Archeology相关推荐

  1. 【CF731D】80-th Level Archeology

    题目 展开 题目描述 Archeologists have found a secret pass in the dungeon of one of the pyramids of Cycleland ...

  2. [CF731D]80-th Level Archeology

    80-th Level Archeology 题解 很明显,要使序列小于序列所需操作次数的区间一定是连续的,在1到n的环上连续. 于是,我们可以先地求出使前一个区间小于后一个区间的操作次数区间,然后通 ...

  3. Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法

    题目链接:http://codeforces.com/contest/731/problem/D D. 80-th Level Archeology time limit per test 2 sec ...

  4. 80-th Level Archeology(前缀和,区间交集)

    I - 80-th Level Archeology(前缀和,区间交集) CodeForces - 731D 题意: ​ 给出n个串,一共有c种字母编号为1-c.然后描述每一个串.每一次可以使得所有串 ...

  5. CF731D.80-th Level Archeology(暴力)

    为什么这么水一道题没人写呢qwq 传送门 题意 给你一堆字符串(其实是数组?)对每个字符(数)+x+x+x(超过ccc就从头开始) 输出任意一个使最后的字符串们字典序非递减的xxx就好啦! Solut ...

  6. CodeForces - 731D 80-th Level Archeology(线段树+暴力/差分)

    题目链接:点击查看 题目大意:给出 n 个数列,再给出一个模数 mod,每次操作可以将所有的数字进行:x = x %mod + 1 操作,问至少进行多少次操作,才能使得 n 个数列按照字典序非降序排列 ...

  7. Codeforces Round #376 (Div. 2) D. 80-th Level Archeology(乱搞)

    题目链接: codeforces731d 题意: 给你n个字符串,每个字符串的元素x取值范围在[1,c],问你能否将所有的x同时进行若干次加1(如果x==c,x变成1)使得字符串是按字典序从小到大排序 ...

  8. 【codeforces 731D】80-th Level Archeology

    [题目链接]:http://codeforces.com/contest/731/problem/D [题意] 给你n个象形文; 每个象形文由l[i]个数字组成; 你可以把所有的组成象形文的数字同时增 ...

  9. CodeForces - 731D 80-th Level Archeology

    /*这题弄懂的过程可谓相当艰难...为了弄懂差分法和线段扫描法,我大约参考了四串代码(当然,其实看代码不是最难的,最难的是,我知道代码的语义,可是不知道为什么要那样写...)下面贴四个blog,里面的 ...

最新文章

  1. windows系统服务器数据库,windows系统的服务器肿么访问数据库
  2. Python list排序
  3. 如何在Python中解析YAML文件
  4. 单样本学习与孪生网络
  5. python IO编程-StringIO和BytesIO
  6. 给javascript初学者的24条最佳实践
  7. 聊聊excel生成图片的几种方式
  8. 【算法分析与设计】DFS与BFS的区别
  9. 200-电影-《The secret life of Walter Mitty》
  10. linux io测试陈旭,130242014076+陈旭+第2次实验(示例代码)
  11. Android 系统(272)---Android中的各种保活
  12. sersync2 安装,配置
  13. 【2021Java最新学习路线】java前端开发
  14. Javascript动态函数
  15. 错误代码1833 Cannot change column used in a foreign
  16. 私藏几十款程序员必备效率工具:一次性都给你了!
  17. 小马激活工具对比暴风激活工具
  18. 路飞学城-python开发集训-第一章
  19. android 后台数据获取,android post方式给后台服务器传递数据
  20. 半导体的基础-三极管的工作原理,史上绝无仅有的理解方式

热门文章

  1. luogu1498:南蛮图腾:分治?复制!
  2. 特征工程:分类变量的处理方式总结
  3. Matlab下调用Python接口
  4. Neovim 打造 Java IDE
  5. R语言基础 | 方差分析(2):多因素方差分析(上)
  6. tendermint源码解析
  7. 设计心理学之席克定律和面部辨识
  8. MATLAB 修改绘图figure界面背景颜色
  9. Vue项目iconfont新增svg图标
  10. linux系统可以用pr吗,linux – 关于pr命令的一些问题