摘要: 题意:N个邮件需要鉴别。两种操作:1. M X Y:X和Y是同一种邮件2.S X:X被误判(意味着X要被它从属的那个集合“踢出去"而所有其它的邮件的关系保持不变)问最后总共有几种邮件。思路:用并查集可以实现邮件的“合并”。但是要把单独的X“踢出去”,然后又要保证其它的关系不变。弄个双层结构,第一层结... 阅读全文
posted @ 2015-03-12 13:31 fish7 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意:N个回合。每个回合:name score【名为name的这个人得了score分(可负可正)】。问最后谁的累积分数是最高的。设为M。如果有好几个都得了M,找出这几个人中哪个最早回合累积分数超过【大于等于】M。最早回合累积分:每一个回合结束后每个人都有一个当前的累积分数。思路:这题竟被困了挺久,,... 阅读全文
posted @ 2015-03-11 20:30 fish7 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题意:Gorwin is very interested in equations. Nowadays she gets an equation like thisx1+x2+x3+⋯+xn=n, and here0≤xi≤nfor1≤i≤nxi≤xi+1≤xi+1for1≤i≤n−1For a c... 阅读全文
posted @ 2015-03-11 20:21 fish7 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题意:When given an array(a0,a1,a2,⋯an−1)and an integerK, you are expected to judge whether there is a pair(i,j)(0≤i≤j st;ll ans,K;int n;int T;ll a[10000... 阅读全文
posted @ 2015-03-11 20:06 fish7 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意:据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。最近正值HDU举办50周年校庆,社会各大... 阅读全文
posted @ 2015-03-11 19:59 fish7 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题意:这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。3.机器人不能在原地停留。4.当机器人选择了一条可行路径后,当他走到... 阅读全文
posted @ 2015-03-11 19:50 fish7 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个字符串(有大写有小写),问最少需要按多少次【键盘上的键】才能写出来。开始前大写灯是关着的。结束后也必须保证大写灯是关的。例:Pirates HDUacm HDUACM8 8 8The string “Pirates”, can type this way, Shift, p, i, ... 阅读全文
posted @ 2015-03-11 19:42 fish7 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意:将两个英文单词进行合并。【最长公共子串只要保留一份】输出合并后的英文单词。思路:求最长公共子串。记录路径:mark[i][j]=-1:从mark[i-1][j]转移而来。mark[i][j]=0:从mark[i-1][j-1]转移而来。mark[i][j]=1:从mark[i][j-1]转移而... 阅读全文
posted @ 2015-03-11 19:28 fish7 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意:一个单词X由{A,B,C}三种字母构成。A(X):单词X中A的个数。B(X),C(X)同理。一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有A(X)>=B(X)>=C(X)。给一个数n。问长度为3n的regular word有多少个。思路:dp[... 阅读全文
posted @ 2015-03-11 19:03 fish7 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意:小明和BOSS开始都有100的生命值。小明开始时拥有100魔法值。普通伤害为1。(不使用魔法技能)小明有N个魔法技能。每个技能消耗ai魔法值同时伤害BOSS bi生命值。每一秒结束后小明如果还活着则会自动增加魔法值t。【增完魔法值不能超过100】问小明最少需要多少秒把BOSS干掉。如果没办法干... 阅读全文
posted @ 2015-03-11 15:46 fish7 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题意:X轴上有N个餐馆。位置分别是D[1]...D[N]。有K个食物储存点。每一个食物储存点必须和某个餐厅是同一个位置。计算SUM(Di-(离第i个餐厅最近的储存点位置))的最小值。1 <= n <= 200, 1 <= k <= 30, k <= n思路:第K个储存点的位置如果确定,前K-1个储存... 阅读全文
posted @ 2015-03-11 15:28 fish7 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:N只FISH。每个回合会有一只FISH吃掉另一个FISH。直到池塘里只剩一只FISH。给出aij:第i只FISH吃掉第J只FISH的概率。问每一只FISH是最后存活者的概率。InputThe first line contains integern(1 ≤ n ≤ 18) — the amou... 阅读全文
posted @ 2015-03-11 15:14 fish7 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题意:一块镜子长宽是a*b。现在要调整(切割)成x:y的比例。问调整完的最大面积是多少。思路:先将x,y弄成最简比例,然后放大到不超过min(a,b)即可。代码:ll a,b,x,y;ll gcd(ll a,ll b){ if(b==0) ret a; ret gcd(b,a%b);}i... 阅读全文
posted @ 2015-03-11 15:03 fish7 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题意:Nick's company employednpeople. Now Nick needs to build a tree hierarchy of «supervisor-surbodinate» relations in the company (this is to say that ... 阅读全文
posted @ 2015-03-11 14:57 fish7 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意:判断从[2,N]中是否有超过【包括】K个数满足:等于一加两个相邻的素数。思路:枚举。也可以:筛完素数,枚举素数,直到相邻素数和超过N。统计个数代码:int n,k;int prime[1005];int cn=0;bool isPrime(int x){ if(x==2) ret tru... 阅读全文
posted @ 2015-03-11 14:53 fish7 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意:In one one-dimensional world there arenplatforms. Platform with indexk(platforms are numbered from 1) is a segment with coordinates[(k - 1)m, (k - ... 阅读全文
posted @ 2015-03-11 14:48 fish7 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题意:求AX^2+BX+C=0的根思路:考虑到A,B,C所有可能的情况代码:double a,b,c;int main(){ cin>>a>>b>>c; if(a==0){ if(b==0){ if(c==0){ puts... 阅读全文
posted @ 2015-03-11 14:41 fish7 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意:N个数,找出第二大的数。如果没有输出-1。思路:UNIQUE的使用。代码:int a[105];int n;int main(){ cin>>n; rep(i,0,n-1) cin>>a[i]; sort(a,a+n); int t=unique(a,a+n)-a; ... 阅读全文
posted @ 2015-03-11 14:38 fish7 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题意:N个点构成一棵树。树枝的长度都是1。在当中找两条不相交【没有公共点】的路,使得二者长度之积最大。(2 ≤ n ≤ 200)思路:一开始思路好麻烦,好麻烦,好麻烦,,,,,,,而且WA,,,,,正解:必定存在第三条路径连接两条最长路径。【因为是一棵树】。去掉第三条路径上的某根树枝就可以将原树分成... 阅读全文
posted @ 2015-03-06 21:35 fish7 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 两遍BFS。从任意一个点出发,第一遍可以找到直径的一端,从这端出发即可找到另外一端。证明:从U点出发,到达V【画个图便清晰了】1.如果U在直径上,则V一定是直径的一个端点。2.如果U不在直径上。U,V线一定和直径有交点(如果没有交点,从U引一条路到直径交于U'。【反证】)。有交点则V一定是直径另一端... 阅读全文
posted @ 2015-03-06 21:29 fish7 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 题意:300个座位构成一个圈。有N个人要入座。共有M个说明 :A B X ,代表B坐在A顺时针方向第X个座位上。如果这个说明和之前的起冲突,则它是无效的。问总共有多少个无效的。思路:并查集的询问方式,,,,直接看代码吧!代码:int n,m;int fa[50005];int dis[50005];... 阅读全文
posted @ 2015-03-06 16:36 fish7 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题意:N个工兵营地,第i个营地有ai个人。三种操作:1.第i个营地增加x个人。2.第i个营地减少x个人。3.查询第i个到第j个营地的总人数。思路:线段树or树状数组代码:(树状数组)int n;int a[50005];int C[50005];void init(){ rep(i,1,n){... 阅读全文
posted @ 2015-03-06 15:46 fish7 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题意:给四个线段(两个端点的坐标)。判断这四个线段能否构成一个矩形。(矩形的四条边都平行于X轴或Y轴)思路:计算几何代码:class Point{public: int x,y; void readd(int xx,int yy){ x=xx; y=yy; ... 阅读全文
posted @ 2015-03-06 15:25 fish7 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题意:N个数。a1...aN。对于每个数而言,每一步只能加一或减一。问最少总共需要多少步使得新序列是非递减序列。N(1 ≤ N ≤ 5000)思路:*一个还不知道怎么证明的结论(待证):最后的新序列b1...bN中的每一个数bi,一定是原a1..aN序列中的某个数。将a1..aN从小到大排列,得到c... 阅读全文
posted @ 2015-03-06 14:29 fish7 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意:给三个线段(每个线段的两个端点的坐标),问这三个线段能否组成字母A。组成字母A的条件:1.两个线段有公共端点。2.这两个线段夹角小于等于90度。3.第三个线段的两个端点分别在这两个线段上,且各自分割的大小比率不超过4:1思路:直接。。。。。应该开始积累计算几何的代码了,,,,代码:struct... 阅读全文
posted @ 2015-03-06 12:57 fish7 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题意:Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: the first is 7 and the second is 11. So the sum of di... 阅读全文
posted @ 2015-03-06 12:52 fish7 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题意:N个点形成一棵树。给出根结点P还有树结构的信息。输出每个点的F[i]。F[i]:以i为根的所有子结点中编号比i小的数的个数。0 G[N];int C[N];int ans[N];stack S;bool vis[N];void Add(int x){ for(int i=x;i0;i-=... 阅读全文
posted @ 2015-03-06 12:50 fish7 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题意:给a,b,c,d。比较a^b和c^d的大小思路:比较log(a^b)和log(c^d)的大小代码:int a,b,c,d;int main(){ while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF){ double x1 = b*log((do... 阅读全文
posted @ 2015-03-03 21:48 fish7 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意:X坐标上有n个数。JOHN想知道有多少对数满足:x[a]-x[b]>T; while(T--){ cin>>n>>k; rep(i,1,n) scanf("%d",&x[i]); sort(x+1,x+1+n); ll ans=0;... 阅读全文
posted @ 2015-03-03 21:46 fish7 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题意:一个如果称作是漂亮数,当且仅当满足:每一位上的数字是【1,9】,从高到时低数字大小降序,且有di%dj=0(iwei){ ++ans; return; } if(pos==1){ if(state){ rep(i,1,... 阅读全文
posted @ 2015-03-03 21:41 fish7 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个偶数N。构造出一个矩阵。满足:主对角线上全为0。每一行是0~N-1的一个全排列。矩阵关于主对角线对称。思路:觉得是智商题,,,,看完题解后觉得不难,但是我就是没想出来。只想到了前面一部分。哎观察力,,,,,例:N=6构造:1234523451345124512351234满足条件。现在每... 阅读全文
posted @ 2015-03-03 21:34 fish7 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意:N位女士一起聚在一个舞厅。每位女士有三个特征值B,I,R。分别代表美貌,智慧,富有。对于一位女士而言,如果存在一个女士的B,I,R都分别大于她自己的B,I,R。则她自己会自杀。统计总共有多少个女士会自杀。1 ≤ N ≤ 5000000 ≤ Bi, Ii, Ri ≤ 109思路:这题想不出来。看... 阅读全文
posted @ 2015-03-03 21:25 fish7 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题意:m个水果,n个价格。每种水果只有一个价格。问如果给每种水果分配价格,使得买的m个水果总价格最小、最大。输出最小值和最大值。思路:贪心。代码:bool cmp(int a,int b){ return a>b;}string name;map mp;int price[200],fruit... 阅读全文
posted @ 2015-03-03 21:13 fish7 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 题意:一个数a,一个数b。现在要将a的每一位上的数字重新整理,生成一个新的不含前导0的数a'。问a'是否等于b。思路:a上每一位的数字从小到大排序,找到最小的非零数和第一位交换。代码:char s1[15],s2[15];int main(){ scanf("%s%s",s1,s2); ... 阅读全文
posted @ 2015-03-03 21:10 fish7 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题意:开始时集合中有n个数。现在要进行k次操作。每次操作:从集合中挑最大的两个数a,b进行相加,得到的数添加进集合中。以此反复k次。问最后集合中所有数的和是多少。(2≤n≤100000,1≤k≤1000000000)思路:写出来发现是要求Fibonaci的前n个数的和。Fibonaci是用矩阵快速幂... 阅读全文
posted @ 2015-03-02 21:53 fish7 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意:GTY有n个朋友,站成一排,每个人有一个特征值ai。有m个询问。每次询问给两个数L,R。问你[L,R](即aL...aR)是否是1..(R-L+1)的一个全排列。是输出YES,否则输出NO思路:先判断是否segma(a[L,R])是否等于(R-L)*(R-L+1)/2。记录每一个ai上一次的位... 阅读全文
posted @ 2015-03-02 21:46 fish7 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:N个点构成的无向图,M条边描述这个无向图。问这个无向图中共有多少个环。(1 ≤ n ≤ 19,0 ≤ m)思路:例子:4 61 21 31 42 32 43 4答案:7画个图发现,直接暴力DFS有太多的重复计算。用DP。枚举点数(状态),每个状态的起点、终点(起点可以不用枚举,因为反正是一个环... 阅读全文
posted @ 2015-03-02 21:12 fish7 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个数X。起始点为坐标0。第1步跳1格,第2步跳2格,第3步跳3格,.....以此类推。每次可以向左跳或向右跳。问最少跳几步可以到坐标X。思路:假设X是正数。最快逼近X的方法是不停向右走。如果越过了X,假设到了X1,则必有X1-X小于最后一步d。如果X1-X是偶数,将之前的某个x变为-x。则... 阅读全文
posted @ 2015-03-02 18:58 fish7 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意:A sequencea0, a1, ..., at - 1is called increasing ifai - 1 >n>>d; rep(i,1,n) scanf("%I64d",&a[i]); ll ans=0; rep(i,2,n){ if(a[i]>a[... 阅读全文
posted @ 2015-03-02 18:41 fish7 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意:①首先定义S为一个有序序列,S={ A1 , A2 , A3 , ... , An },n为元素个数 ; ②然后定义Sub为S中取出的一个子序列,Sub={ Ai1 , Ai2 , Ai3 , ... , Aim },m为元素个数 ; ③其中Sub满足 Ai1 d (1 >1; b... 阅读全文
posted @ 2015-02-28 17:57 fish7 阅读(280) 评论(0) 推荐(0) 编辑