CF731D 80-th Level Archeology
一、题目
点此看题
二、解法
观察到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相关推荐
- 【CF731D】80-th Level Archeology
题目 展开 题目描述 Archeologists have found a secret pass in the dungeon of one of the pyramids of Cycleland ...
- [CF731D]80-th Level Archeology
80-th Level Archeology 题解 很明显,要使序列小于序列所需操作次数的区间一定是连续的,在1到n的环上连续. 于是,我们可以先地求出使前一个区间小于后一个区间的操作次数区间,然后通 ...
- 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 ...
- 80-th Level Archeology(前缀和,区间交集)
I - 80-th Level Archeology(前缀和,区间交集) CodeForces - 731D 题意: 给出n个串,一共有c种字母编号为1-c.然后描述每一个串.每一次可以使得所有串 ...
- CF731D.80-th Level Archeology(暴力)
为什么这么水一道题没人写呢qwq 传送门 题意 给你一堆字符串(其实是数组?)对每个字符(数)+x+x+x(超过ccc就从头开始) 输出任意一个使最后的字符串们字典序非递减的xxx就好啦! Solut ...
- CodeForces - 731D 80-th Level Archeology(线段树+暴力/差分)
题目链接:点击查看 题目大意:给出 n 个数列,再给出一个模数 mod,每次操作可以将所有的数字进行:x = x %mod + 1 操作,问至少进行多少次操作,才能使得 n 个数列按照字典序非降序排列 ...
- Codeforces Round #376 (Div. 2) D. 80-th Level Archeology(乱搞)
题目链接: codeforces731d 题意: 给你n个字符串,每个字符串的元素x取值范围在[1,c],问你能否将所有的x同时进行若干次加1(如果x==c,x变成1)使得字符串是按字典序从小到大排序 ...
- 【codeforces 731D】80-th Level Archeology
[题目链接]:http://codeforces.com/contest/731/problem/D [题意] 给你n个象形文; 每个象形文由l[i]个数字组成; 你可以把所有的组成象形文的数字同时增 ...
- CodeForces - 731D 80-th Level Archeology
/*这题弄懂的过程可谓相当艰难...为了弄懂差分法和线段扫描法,我大约参考了四串代码(当然,其实看代码不是最难的,最难的是,我知道代码的语义,可是不知道为什么要那样写...)下面贴四个blog,里面的 ...
最新文章
- 如何查询并解决80端口 (转)
- java web hello world(一)
- weblogic故障报错
- atomQQ 笔记 之 列表元素的异步加载
- 登量子位“AI领航企业榜单”,联想用实力说话
- 游戏设计阻力探秘之扩展空间
- Spring思维导图(AOP篇)
- Docker Hub 将放弃支持客户端 1.5 及以下版本
- web下拉菜单代码html,简单的单级下拉菜单实现_html/css_WEB-ITnose
- 报价单常见问题及高效拯救你的报价实用手册
- OpenJ_Bailian - 4104 G - 单词翻转
- pygame.mask原理及使用pygame.mask实现精准碰撞检测
- CVPR2019| 百度17篇CVPR论文学习记录(包含:无人驾驶、神经网络、GAN、无监督学习、目标检测)
- Android 实战 - 天气(有缺陷)APP
- 如何为MP3文件创建url直接可以打开,无需下载
- java 中 模等的用法
- linux 配置trac界面显示为中文,Trac的安装和配置
- 美团运维面试官没想到jenkins我用得这么溜,人直接傻掉
- 剑指Offer-66:构建乘积数组
- 人类感知决策的神经生理学