摘要: 这是隐藏的最深的一个水题。其隐藏性能如此之好,是因为题目的描述十分蛋疼,写了好多好多的废话。让我们这种过不了六级的孩子情何以堪啊。是这样的,给你若干个矩形,每次在所有的矩形中两两组合形成许多许多新的矩形,同时宽和高也是任意组合的。(但是组合永远只是一个宽和一个高相组合)对于每做一次操作,你还可以改变操作后矩形的宽和高一个单位(变小或者变大)问你变出一个正方形的最小步数是多少?其实很简单,直接判断初始状态是否为正方形以及第一步可不可以变出正方形。剩下的情况直接返回(sum+1)/2。自己理解一下就可以了,太简单,我就不说了。#include #include #include #define m 阅读全文
posted @ 2013-11-13 23:43 092000 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目绝对够水,我就不详细说明了。直接上代码吧。只是提示一下要用 unsigned long long。(不知道我不用字典树为什么会超时,肿么搞的)#include #include #include #define maxn 2300#define ll unsigned long longusing namespace std;ll tag[50050],next[50050][60],N;char s[maxn];ll g[maxn],dis,tot,now;ll b,v,k,n;ll f[maxn];ll getcode(char cc){ if (cc>='a' 阅读全文
posted @ 2013-11-13 23:37 092000 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目是这样的,游戏规则,每个人轮流将二维空间上的皇后往下,往左或者往斜下45度的方向移动。谁第一个移动到0,0的位置就获胜。题目给定你若干个矩形,求矩形中任取一点且该点必胜的概率有概率。其实是这样的,我们需要把所有的必败点的坐标都求出来。发现在10^6以内的必败点的数量只有70多万个,这样我们可以全部存下来。其实必败点是这样求得,第一个点为(0,0),接下来第i个点的坐标为(x,y),其中x为第一个没有在前面的坐标中间出现过的数字,y=x+i。这样就把所有的必败的点都求出来了呢,同时由于对称性,我们要把另外一边的点也全部求出来。这样相当于是存到了两个数组里面。接下来的就是询问了。对于每个矩形, 阅读全文
posted @ 2013-11-13 23:33 092000 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 题意很简单,本身也是个水题。给你两个字符串,如果两个串完全相同,那么输出yes;如果两串只是空格的不同,出去空格后完全相同,那么输出Output Format Error,否则输出Wrong Answer。很简单,在两个数组上面各设置一个指针逐个比对向后移动,同时设置两个flag分别标记有无不相同的字符或者空格就ok了。#include #include #include #define maxn 1000100using namespace std;char s1[maxn],s2[maxn];int n,m,t,x1,x2,T;bool flag1,flag2;void compare() 阅读全文
posted @ 2013-11-13 23:24 092000 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题目要求你在n个数的序列中,找出一段连续的长度不小于k的连续的序列,使得这个序列的平均数最大。输出这个平均数。典型的优先队列。首先我们需要根据输入的序列,制造一个和序列。然后从k开始往后面走,其实每走一步都维护了一下优先队列,然后加入当前的这个数。很简单吧应该。。。。。。 1 #include 2 #include 3 #include 4 #define maxn 100100 5 using namespace std; 6 7 int a[maxn],tep,n,k,tot,sum[maxn]; 8 int head,tail,j; 9 int q[maxn];10 double... 阅读全文
posted @ 2013-11-13 10:24 092000 阅读(417) 评论(0) 推荐(0) 编辑