随笔分类 -  ACM-NYOJ

摘要:喷水装置(二)时间限制:3000 ms | 内存限制:65535 KB难度:4描述有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。输入第一行输入一个正整数N表示共有n次测试数据。每一组测试数据的第一行有三个整数n,w,h,n表示共有n个喷水装置,w表示草坪的横向长度,h表示草坪的纵向长度。随后的n行,都有两个整数xi和ri,xi表示第i个喷水装置的的横坐标(最左边为0),ri表示该喷水装置能覆盖的圆的半径。输 阅读全文
posted @ 2012-04-19 01:09 mtry 阅读(1928) 评论(0) 推荐(0) 编辑
摘要:开心的小明时间限制:1000 ms | 内存限制:65535 KB难度:4描述小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。设第j 件物品的价格为v[j], 阅读全文
posted @ 2012-04-17 21:42 mtry 阅读(706) 评论(0) 推荐(0) 编辑
摘要:回文字符串时间限制:3000 ms | 内存限制:65535 KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0<N<100)接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每行输出所需添加的最少字符数样例输入1Ab3bd样例输出2分析:d[i][j]表示从第 i 到第 j 的最优解;if(a[i]==a[j] 阅读全文
posted @ 2012-04-17 00:45 mtry 阅读(1776) 评论(0) 推荐(0) 编辑
摘要:括号匹配(二)时间限制:1000 ms | 内存限制:65535 KB难度:6描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行样例输入4 阅读全文
posted @ 2012-04-16 23:37 mtry 阅读(2028) 评论(0) 推荐(1) 编辑
摘要:前缀式计算时间限制:1000 ms | 内存限制:65535 KB难度:3描述先说明一下什么是中缀式:如2+(3+4)*5这种我们最常见的式子就是中缀式。而把中缀式按运算顺序加上括号就是:(2+((3+4)*5))然后把运算符写到括号前面就是+(2 *( +(3 4) 5) )把括号去掉就是:+ 2 * + 3 4 5最后这个式子就是该表达式的前缀表示。给你一个前缀表达式,请你计算出该前缀式的值。比如:+ 2 * + 3 4 5的值就是 37输入有多组测试数据,每组测试数据占一行,任意两个操作符之间,任意两个操作数之间,操作数与操作符之间都有一个空格。输入的两个操作数可能是小数,数据保证输入的 阅读全文
posted @ 2012-04-16 14:11 mtry 阅读(1884) 评论(0) 推荐(0) 编辑
摘要:最长公共子序列时间限制:3000 ms | 内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入第一行给出一个整数N(0<N<100)表示待测数据组数接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.输出每组测试数据输出一个整数,表示最长 阅读全文
posted @ 2012-04-16 09:41 mtry 阅读(480) 评论(0) 推荐(0) 编辑
摘要:The Triangle时间限制:1000 ms | 内存限制:65535 KB难度:4描述73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left o 阅读全文
posted @ 2012-04-14 00:50 mtry 阅读(324) 评论(0) 推荐(0) 编辑
摘要:单调递增最长子序列时间限制:3000 ms | 内存限制:65535 KB难度:4描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4输入第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入3aaaababcabklmncdefg样例输出137分析:方法一:求最大字段和的方法相似。O(n^2)dp[i] 以 i 结尾的当然也包括i 在内的最长递增子序列;我经常犯的的一个错误是:dp[i] = d[j] +1(j<i && 阅读全文
posted @ 2012-04-14 00:24 mtry 阅读(2524) 评论(0) 推荐(2) 编辑
摘要:完全覆盖时间限制:2000 ms | 内存限制:65535 KB难度:3描述有一天小董子在玩一种游戏----用2*1或1*2的骨牌把m*n的棋盘完全覆盖。但他感觉游戏过于简单,于是就随机生成了两个方块的位置(可能相同),标记一下,标记后的方块不用覆盖。还要注意小董子只有在m*n的棋盘能被完全覆盖后才会进行标记。现在他想知道:如果标记前m*n的棋盘能被完全覆盖,标记后的棋盘是否能被完全覆盖?输入第一行有一个整数t(1<=t<=100000),表示有t组测试数据。每组测试数据有三行或一行。第一行有两个整数 m,n(1<=m,n<=25535)表示行数和列数。第二、三行都有两 阅读全文
posted @ 2012-04-06 12:43 mtry 阅读(806) 评论(0) 推荐(0) 编辑
摘要:Game of Connections时间限制:1000 ms | 内存限制:65535 KB难度:3描述This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, . . . , 2n - 1, 2n consecutively in clockwise order on the ground to form a circle, and then, to draw some straight line segments to connect them into number pai 阅读全文
posted @ 2012-03-30 16:40 mtry 阅读(1408) 评论(0) 推荐(0) 编辑
摘要:快速查找素数时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。输入给出一个正整数数N(N<=2000000)但N为0时结束程序。测试数据不超过100组输出将2~N范围内所有的素数输出。两个数之间用空格隔开样例输入510110样例输出2 3 52 3 5 72 3 5 7 11算法分析:打素数表;错误原因:假如n=2000000时要考虑最后的数字View Code #include<iostream>#include<cstdio>#include<cstring> 阅读全文
posted @ 2012-03-22 22:03 mtry 阅读(1754) 评论(0) 推荐(0) 编辑
摘要:求余数时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数输入第一行有一个整数m(1<=m<=8),表示有m组测试数据;随后m行每行有一个自然数n。输出输出n整除10003之后的余数,每次输出占一行。样例输入345465456541样例输出456948算法分析:就是模拟一般的除法运算。View Code 1 #include<iostream> 2 #include<cstring> 3 #define N 1000010 4 5 using nam 阅读全文
posted @ 2012-03-22 19:39 mtry 阅读(882) 评论(0) 推荐(0) 编辑
摘要:我排第几个时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?输入第一行有一个整数n(0<n<=10000);随后有n行,每行是一个排列;输出输出一个整数m,占一行,m表示排列是第几位;样例输入3abcdefghijklhgebkflacdjigfkedhjblcia样例输出1302715242260726926算法分析:这个题我是采用计算给定字符串后面还有多少个View Code 1 #include<iostream 阅读全文
posted @ 2012-03-22 14:51 mtry 阅读(741) 评论(0) 推荐(0) 编辑
摘要:九的余数时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。输入第一行有一个整数m(1<=m<=8),表示有m组测试数据;随后m行每行有一个自然数n。输出输出n整除九之后的余数,每次输出占一行。样例输入345465456541样例输出454算法分析:这个题目有个规律,(a*10^b)%9==(a%9)*(10^b%9)%9==(a%9)*1%9==a%9View Code 1 #include<iostream> 2 #include<cstring> 阅读全文
posted @ 2012-03-22 13:54 mtry 阅读(379) 评论(0) 推荐(0) 编辑
摘要:次方求模时间限制:1000 ms | 内存限制:65535 KB难度:3描述求a的b次方对c取余的值输入第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)输出输出a的b次方对c取余之后的结果样例输入32 3 53 100 1011 12345 12345样例输出3110481心得:这题wa好多次了,找了好久多没发现错误,long long 2^63 大概是 9*10^18,假如999999999*999999999*999999999肯定超过int 64位的长度了,所以一定溢出。测试案例 阅读全文
posted @ 2012-03-19 14:53 mtry 阅读(454) 评论(0) 推荐(0) 编辑
摘要:汉诺塔(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。现在请你计算出起始有m个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步 阅读全文
posted @ 2012-03-15 15:40 mtry 阅读(502) 评论(0) 推荐(0) 编辑
摘要:街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;输入第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0<x,y<100,表示某个用户所在街区 阅读全文
posted @ 2012-03-15 14:47 mtry 阅读(2554) 评论(1) 推荐(0) 编辑
摘要:不再爱你……时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在有一个圆柱形水杯,里面装满了水,在它的底部有一个小洞,通过一些简单的物理知识我们可以知道:1、由于重力的原因,水一定会从小洞流出来。2、小洞漏水的速度是和小洞那个位置的水所受到的压力大小成正比的。进而,我们可以知道,漏水的速度V和水面的的高度h成正比,简单起见,我们就直接让v=h吧(只是数值上的相等,v我们认为是单位时间漏出的水的体积,与小孔的大小无关,物理好的童鞋就不要深究了^_^)。3、如果你非常喜欢一个人,理论上在水漏完之前你一定不再喜欢TA了。好吧,扯远了,我们现在的问题是,如果原来倒入了高度为h的水, 阅读全文
posted @ 2012-03-08 20:13 mtry 阅读(402) 评论(0) 推荐(0) 编辑
摘要:Fibonacci数列(四)时间限制:1000 ms | 内存限制:65535 KB难度:4描述数学神童小明终于把0到100000000的Fibonacci数列(f[0]=0,f[1]=1;f[i]=f[i-1]+f[i-2](i>=2))的值全部给背了下来。接下来,CodeStar决定要考考他,于是每问他一个数字,他就要把答案说出来,不过有的数字太长了。所以规定超过4位的只要说出前4位(高4位)就可以了,可是CodeStar自己又记不住。于是他决定编写一个程序来测验小明说的是否正确。输入输入若干数字n(0 <= n <= 100000000),每个数字一行。读到文件尾结束。 阅读全文
posted @ 2012-03-02 18:19 mtry 阅读(586) 评论(0) 推荐(0) 编辑
摘要:Matrix Power Series时间限制:1000 ms | 内存限制:65535 KB难度:4描述Given an×nmatrixAand a positive integerk, find the sumS=A+A2+A3+ … +Ak.输入The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 10^9) and m (m < 10^4). Then follow n lines each 阅读全文
posted @ 2012-03-01 16:36 mtry 阅读(273) 评论(0) 推荐(0) 编辑