摘要: 题目(第四题第五题)题目有两个操作,x/2和x-1,很容易就想到和二进制有关,但具体关系是什么呢。可以考虑x/2和x-1都是左移的操作,于是就可以发现X开头的有趣数列中的数都是x的二进制前缀。例如 111 110 11 10 1 0那么判断[a,b]中的有趣数列是不是含有k,只需要把k当做前缀然后取和区间[a,b]相交的部分就可以了。这个程序写得好丑= =。View Code 1 program Neayo; 2 const 3 inf='sequence.in'; 4 ouf='sequence.out'; 5 var 6 i,j,t:lon... 阅读全文
posted @ 2012-11-06 17:10 neayo 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目首先是一个数据范围为2000的,这个可以用平方算法做。要使它成为一个非降序列的合并次数最小,我们可以贪心地想到要使合并后的值尽量小,不然就会导致后面需要的合并次数增多。我们用c[i]记录前缀和,f[i]表示以i结尾的这一段序列的最后一个元素的值,g[i]表示到i为止的合并次数,那么就可以得到一个转移方程。f[i]=c[i]-c[j](f[j]<=c[i]-c[j])g[i]=g[j]+i-j-1;因为c[i]-c[j]在downto的过程中是单调递增的,所以只要找到一个可以转移的就可以break了。View Code program Neayo;const inf='sequ 阅读全文
posted @ 2012-11-06 16:11 neayo 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 并(sequence)3.1 题目描述给定一个序列,你每次可以合并相邻两个元素,新的元素为这两个元素的和。你需要使得若干次合并之后的序列非降,求最小合并次数。3.2 输入格式第一行一个数 n,表示序列长度。接下来一行 n个正整数,表示这个序列。3.3 输出格式一行一个数,表示最小合并次数。3.4 输入样例58 2 7 3 13.5 输出样例33.6 数据范围对于 30%的数据:n ≤ 100对于 100%的数据:n ≤ 1500 ,序列元素大小不超过 1000 。CCL的消遣(CCL)[题目描述] AS we know,CCL是一个很无聊很无聊很无聊的人.有一天,CCL注意到地面上有很多棍子, 阅读全文
posted @ 2012-11-06 15:44 neayo 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 2.1 题目描述路上挂着一些灯,第 i 个灯坐标为(xi, yi) 。每个灯的照射范围为一个三角形,半张角为 zi 。你有一架飞机,但是只能飞固定高度。由于未知原因(目测秋锅农气过重),飞机只能在光下飞行。你的任务是找一个最大的高度来从 L 飞到R 。如图,红线所示高度是一个合法高度,但是不是最高的。2.2 输入格式第一行三个数 n,L,R ,其中n 是整数,表示灯的个数。接下来 n行,每行 3 个实数x, y, z ,描述一个灯。2.3 输出格式一行一个数,表示最大高度。至少保留 6 位小数。你的答案正确,当且仅当与标准输出相对误差或绝对误差不超过 10− 。2.4 样例输入2 3.2 7. 阅读全文
posted @ 2012-11-06 15:20 neayo 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1.1 题目描述春宵和秋锅比赛现农。春宵说:我的农气值有:这么大,你是不可能比我大的。秋锅笑而不语。他在后面加了一个: (mod M) 。然后,他问春宵:你的农气值现在是多少呢?(好冷的题目。。)1.2 输入格式一行 3 个数,依次为M,K,N 。1.3 输出格式一行 1 个数,表示春宵的农气值。1.4 样例输入98 3 41.5 样例输出21.6 数据范围对于 20%的数据:N,M,K ≤ 10^3对于 40%的数据:N,M ≤ 10^3,K ≤ 10^18对于 80%的数据:M ≤ 10^5,N,K ≤ 10^18对于 100%的数据:0 < M ≤ 3 × 10^6,N, 阅读全文
posted @ 2012-11-04 21:58 neayo 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 2.1 题目描述给定一个无自环重边的无向图,求这个图的三元环1的个数以及补图2的三元环个数。2.2 输入格式第一行 2 个数n,m ,分别表示图的点数、边数。接下来 m行,每行两个数 u, v ,表示一条连接u, v 的无向边。2.3 输出格式一行两个数,依次表示原图的三元环个数以及补图的三元环的个数。2.4 样例输入5 51 21 32 32 43 42.5 样例输出2 12.6 数据范围对于 30%的数据:n ≤ 100对于 60%的数据:m ≤ 500对于 100%的数据:n ≤ 105,m ≤ 1052.7 评分方式如果你两个数均输出正确,得 10分。否则如果两个数中任意一个正确或者两 阅读全文
posted @ 2012-11-04 21:29 neayo 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 1.1 题目描述有一排硬币堆,两个人轮流取硬币。每个选手随机取最左边或者最右边的一堆硬币。求先手期望取得的硬币数。1.2 输入格式本题有多组测试数据。第一行一个数 T ,表示数据组数。对于每组测试数据,第一行一个正整数 n,表示有多少堆硬币。第二行 n个非负整数,依次表示每一堆硬币的个数。1.3 输出格式对于每组测试数据,输出一行一个数,表示先手期望取得的硬币数。保留 3 位小数。1.4 样例输入231 4 945 5 5 51.5 样例输出9.50010.0001.6 样例解释对于第一个测试数据:先手第一次取 后手第一次取 先手第二次取 先手取得的石子数 出现的概率1 4 9 10 0.25 阅读全文
posted @ 2012-10-21 22:47 neayo 阅读(376) 评论(0) 推荐(0) 编辑
摘要: program Neayo;const inf='light.in'; ouf='light.out';var i,j,k,m,n:longint; exp,sr,sl,l,r:extended; x,y,tan:array[0..100001]of extended;procedure qsort(r,l:longint);var tmp,xx:extended; i,j:longint;begin i:=l;j:=r; xx:=x[l+random(r-l+1)]; repeat ... 阅读全文
posted @ 2012-10-15 19:58 neayo 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 给你n个桶子以及它们的容积,用最少且字典序最小的桶子量出Q升牛奶。答案保证不超过3,于是乱搞,,,,,,考试的时候写的,写的很丑。program Neayo;const inf='milk.in'; ouf='milk.out';var i,ans,j,k,q,n,top,closed,step:longint; a:array[0..101]of longint; b:array[0..3]of longint; use:array[0..101]of boolean; h:array[0..... 阅读全文
posted @ 2012-10-14 20:47 neayo 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目大意:在一个长方形框子里,最多有N个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这 N个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合)注意,油滴是圆形的……乱搞就行了。。program Neayo;const inf='oil.in'; ouf='oil.out';var i,j,k,n,x1,x2,y1,y2:longint; ans,s,min:real; ... 阅读全文
posted @ 2012-10-14 20:44 neayo 阅读(304) 评论(0) 推荐(0) 编辑