1536.seek
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
俗话说“好命不如好名”,小h准备给他的宠物狗起个新的名字,于是他把一些英文的名字全抄下来了,写成一行长长的字符串,小h觉得一个名字如果是好名字,那么这个名字在这个串中既是前缀,又是后缀,即是这个名字从前面开始可以匹配,从后面开始也可以匹配,例如abc在 abcddabc中既是前缀,也是后缀,而ab就不是,可是长达4*10^5的字符让小h几乎昏过去了,为了给自己的小狗起个好名字,小h向你求救,并且他要求要将所有的好名字的长度都输出来。
Input
一行,要处理的字符串(都是小写字母)。
Output
一行若干个数字,从小到大输出,表示好名字的长度。
Sample Input
1abcddabc
Sample Output
13 8
Data Constraint
Code
123456789101112131415161718192021#include <stdio.h>const int max=4e5+1;char s[max];int next[max] ...
1534.rank
Time Limits: 2000 ms Memory Limits: 65536 KB
Description
小h和小R正在看之前的期末&三校联考成绩,小R看完成绩之后很伤心,共有n(n<=5*10^6)个学生,第i个学生有一个总成绩Xi(0<=Xi<=10^5),因为他的排名是倒数第k(1<=k<=n)个,于是小R想知道那些成绩比他低(包括成绩和他一样)的同学的成绩,这样能让他没那么伤心。
Input
第一行,n和k,表示有n个学生,小R排倒数第k.
第二行,n个非负整数,表示这n个学生的成绩。
Output
一行,共k个数,从小到大输出。(相同成绩按不同排名算)
Sample Input
125 31 1 2 2 3
Sample Output
11 1 2
Data Constraint
Code
123456789101112131415161718#include<stdio.h>const int max=1e5+1;int a[max],n,k,temp;int main(){ scanf("%d ...
1437.最小与最大
input:minmax.in output:minmax.out
时间限制: 1000 ms 空间限制: 60000 KB
题目描述
做过了乘积最大这道题,相信这道题也难不倒你。 已知一个数串,可以在适当的位置加入乘号(设加了k个,当然也可不加,即分成k+1个部分),设这k+1个部分的乘积(如果k=0,则乘积即为原数串的值)对m 的余数(即mod m)为x; 现求x能达到的最小值及该情况下k的最小值,以及x能达到的最大值及该情况下的k的最小值(可以存在x的最小值与最大值相同的情况)。
以下是{原题:符文之语}另一种题目描述,题意相同:
{ 当小 FF 来到神庙时,神庙已经破败不堪了。 但神庙的中央有一个光亮如新的石台。小 FF 走近石台,发现石台上有一个数串,而数串的上方刻着一串古老的符文之语。精通古符文之语的小 FF 不费吹灰之力就读懂了文章的意思, 其大意是:
对于石台上的一串数字,你可以在适当的位置加入乘号(设加了 k 个,当然也可不加, 即分成 k+1 个部分),设这 k+1 个部分的乘积(如果 k=0,则乘积即为原数串的值)对 m 的余数(即 mod ...
1433.数码问题
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
Alice有一个N*N的格子,把1-N^2按照从上到下从左到右的顺序填进表格中,允许在表格上进行两种操作:
(1) 旋转行——这一行的数向右移动一个位置,而最后一列的数会移到第一列;
(2) 旋转列——这一列的数向下移动一个位置,最后一行的数会移到第一行。
Alice想把数X移到(R,C)处可以采用以下方法:
•如果X不在C这一列,通过旋转行操作把X移到C这一列;
•如果X不在R这一行,通过旋转列操作把X移到R这一行。
下面是一个把6移到(3,4)的例子:
![img](data:image/JPG;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIy ...
1432.输油管道
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
请你帮忙设计一个从城市M到城市Z的输油管道,现在已经把整个区域划分为R行C列,每个单元格可能是空的也可能是以下7种基本管道之一:
![img](data:image/JPG;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABkApYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwR ...
1420.佳肴
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料。
现在有N种原料,每种原料都有酸度S和苦度B两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总苦度为每种原料的苦度之和。
正如大家所知,佳肴是既不酸也不苦的,因为要保证所选的原料使得总酸度和总苦度差的绝对值最小。
由于佳肴不能只有水,所以必须至少选择一种佳肴。
Input
输入第一行包含一个整数N(1<=N<=10),表示原料的种数。
接下来N行每行包含两个用一个空格隔开的整数,分别表示酸度和苦度。
输入数据保证如果所有原料都选上,总酸度和总苦度不会超过10^9。
Output
输出总酸度和总苦度最小的差。
Sample Input
123456789101112131415输入1:13 10输入2:23 85 8输入3:41 72 63 84 9
Sample Output
12345678输出1:7输出2:1输出3:1
Data Constraint
Hint
【样例解释】
...
1388.自行车赛
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
翠亨村举行一场自行车赛,翠亨村有N个路口(编号1到N),另有M条双向边连接起来。下面有几个定义:
•路径:由一系列边组成,满足后一条边的起点为前一条边的终点;
•简单路径:每个路口最多经过一次的路径;
•环:起点和终点在同一个路口的简单路径。
保证每对路口之间至少有一条路径相连,除此之外还满足每条边最多只会出现在一个环中。
你的任务是找出最长的满足以下两个条件的路径:
•起点可以在任意路口,但终点必须在1号路口;
•路径可能多次经过同一个路口,但每条边最多只会经过一次。
Input
第一行包含两个整数N和M(2<=N<=10000,1<=M<=2N-2),表示路口数量和边的数量。
接下来M行,每行包含两个不同的整数A和B(1<=A,B<=N),表示A和B之间存在一条边直接相连,两个路口之间最多只有一条边直接相连。
Output
输出最长的比赛路径的长度。
Sample Input
123456789101 ...
1386.排序
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
你收到一项对数组进行排序的任务,数组中是1到N个一个排列。你突然想出以下一种特别的排序方法,分为以下N个阶段:
•阶段1,把数字1通过每次交换相邻两个数移到位置1;
•阶段2,用同样的方法把N移到位置N;
•阶段3,把数字2移到位置2处;
•阶段4,把数字N-1移到位置N-1处;
•依此类推。
换句话说,如果当前阶段为奇数,则把最小的未操作的数移到正确位置上,如果阶段为偶数,则把最大的未操作的数移到正确位置上。
写一个程序,给出初始的排列情况,计算每一阶段交换的次数。
Input
第一行包含一个整数N(1<=N<=100000),表示数组中元素的个数。
接下来N行每行一个整数描述初始的排列情况。
Output
输出每一阶段的交换次数。
Sample Input
123456789101112131415161718192021222324输入1:3213输入2:554321输出3:75437126
Sample Output
1 ...
1385.直角三角形
Time Limits: 4000 ms Memory Limits: 65536 KB
Description
二维平面坐标系中有N个点。
从N个点选择3个点,问有多少选法使得这3个点形成直角三角形。
Input
第一行包含一个整数N(3<=N<=1500),表示点数。
接下来N行,每行包含两个用空格隔开的整数表示每个点的坐标,坐标值在-10^9到10^9之间。
每个点位置互不相同。
Output
输出直角三角形的数量。
Sample Input
1234567891011121314151617181920输入1:34 22 11 3输入2:45 02 68 65 7输入3:5-1 1-1 00 01 01 1
Sample Output
12345678输出1:1输出2:0输出3:7
Code
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737 ...
1382.区间
Time Limits: 1000 ms Memory Limits: 65536 KB
Description
Alice收到一些很特别的生日礼物:区间。即使很无聊,Alice还是能想出关于区间的很多游戏,其中一个是,Alice从中选出最长的不同区间的序列,其中满足每个区间必须在礼物中,另序列中每个区间必须包含下一个区间。
编程计算最长序列的长度。
Input
输入文件第一行包含一个整数N(1<=N<=100000),表示区间的个数。
接下来N行,每行两个整数A和B描述一个区间(1<=A<=B<=1000000)。
Output
输出满足条件的序列的最大长度。
Sample Input
12345678910111213141516171819202122输入1:33 42 51 6输入2:510 3020 4030 5010 6030 40输入3:61 41 51 61 72 53 5
Sample Output
12345678输出1:3输出2:3输出3:5
Data Constraint
Hint
【样例解释】
例3中可以找到长度为5 ...