【题目链接】:http://codeforces.com/contest/731/problem/D

【题意】



给你n个象形文;

每个象形文由l[i]个数字组成;

你可以把所有的组成象形文的数字同时增加1;

超过c的变成1;

然后让你用这个操作使得n个象形文按照字典序升序

排;

问你最小的操作次数;

【题解】



首先;

得先让这n个字符串,相邻的两个的字符串都符合字典序

即s[i]<=s[i+1];

所以;

可以分别处理出使得这n-1个相邻的关系成立的操作步数;

只考虑第一个不同的位置就好;

因为前面不管怎么改变都是一样的;

比如n-1个相邻关系种的

s[3]和s[4]

如果

s[3][i]和s[4][i]是第一个不同的位置;

②

则如果s[3][i]< s[4][i]

那么0..c-s4[i]和c-s[3][i]+1..c这个两个区间内的数对应的操作次数;

都能使s[3][i]< s[4][i]成立;

②

如果s[3][i]>s[4][i]

则c-s[3][i]+1..c-s[4][i]这个区间范围内的数对应的操作次数,都能使得s[3][i]< s[4][i]成立;

求这n-1个区间的交就好;

如果有一个区间能够使得这n-1个关系都满足则输出最小的就好;



【Number Of WA】



0



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 5e5+100;
const int M = 1e6+100; int n,c,l[N],sum[M],sum1[M];
vector <int> G[N]; int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
//init??????
cin >> n >> c;
rep1(i,1,n)
{
cin >> l[i];
int x;
rep1(j,1,l[i])
{
cin >> x;
G[i].pb(x);
}
}
rep1(i,1,n-1)
{
int len = min(l[i],l[i+1]);
int j;
for ( j = 0;j <= len-1;j++)
if (G[i][j]!=G[i+1][j])
break;
if (j==len)
{
if (l[i]>l[i+1])
return cout <<-1<<endl,0;
sum[0]++;
continue;
}
if (G[i][j]<G[i+1][j])
{
sum[0]++;
//s[i][j]<s[i+1][j]
sum[c-G[i+1][j]+1]--;
sum[c-G[i][j]+1]++;
}
else
{
//s[i][j]>s[i+1][j]
sum[c-G[i][j]+1]++;
sum[c-G[i+1][j]+1]--;
}
}
rep1(i,1,c) sum[i] += sum[i-1];
rep1(i,0,c)
if (sum[i]==n-1)
{
cout <<i<<endl;
return 0;
}
cout <<-1<<endl;
return 0;
}

【codeforces 731D】80-th Level Archeology的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【13.77%】【codeforces 734C】Anton and Making Potions

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. 【51.27%】【codeforces 604A】Uncowed Forces

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  4. 【codeforces 750D】New Year and Fireworks

    time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard ...

  5. 【33.33%】【codeforces 608C】Chain Reaction

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  7. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  8. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  9. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

随机推荐

  1. Python面向切面编程-语法层面和functools模块

    1,Python语法层面对面向切面编程的支持(方法名装饰后改变为log) __author__ = 'Administrator' import time def log(func): def wra ...

  2. Swagger框架学习分享

    Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...

  3. 详解Google第二代TPU 既能推理又能训练 性能霸道

    详解Google第二代TPU 既能推理又能训练 性能霸道 转自:http://www.cnbeta.com/articles/tech/613639.htm 5月18日凌晨,Google CEO Su ...

  4. poj 2031--Building a Space Station(prim)

    Building a Space Station Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6064   Accepte ...

  5. BPM中字段查重,C#Ajac调用示例

    BPM中字段查重记录: 这也算是一个C#调用Ajax的示例吧,如果是异步加载的话async: false去掉就可以了. 需求:比如现在要录入一些信息,但是,有一个字段不能重复,BPM表都是自己生成的, ...

  6. python-sqlite3事务

    sqlite3事务总结: 在connect()中不传入 isolation_level 事务处理: 使用connection.commit() #!/usr/bin/env python # -*- ...

  7. [XJOI]noip40 T2统计方案

    统计方案 小B写了一个程序,随机生成了n个正整数,分别是a[1]..a[n],他取出了其中一些数,并把它们乘起来之后模p,得到了余数c.但是没过多久,小B就忘记他选了哪些数,他想把所有可能的取数方案都 ...

  8. MapReduce架构与生命周期

    MapReduce架构与生命周期 概述:MapReduce是hadoop的核心组件之一,可以通过MapReduce很容易在hadoop平台上进行分布式的计算编程.本文组织结果如下:首先对MapRedu ...

  9. vue2.x阅读笔记

    v-once 作用: 只赋值一次 注意: 包括子项都是只赋值一次 模板 1.v-text v-html 2.{}语法 3.如果是html的属性,则用v-bind绑定,简写: 注意: 1.可以使用jav ...

  10. (转载)自定义CoordinatorLayout的Behavior(2):实现淘宝和QQ ToolBar透明渐变效果

    自定义CoordinatorLayout的Behavior(2):实现淘宝和QQ ToolBar透明渐变效果 作者 小武站台 关注 2016.02.19 11:34 字数 1244 阅读 3885评论 ...