自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

22h's Blog

咸鱼不能失去梦想

  • 博客(64)
  • 收藏
  • 关注

原创 CodeForces 834C The Meaningless Game

题目链接:http://codeforces.com/contest/834/problem/C 题意:一个人和他的一只狗一起玩游戏,游戏n局,游戏规则如下,每轮两人选择一个数字k,先喊出来的那个就在原有的积分乘上k^2,另一个则乘上k,最后,那个人忘了游戏谁赢了,只是记得每局的两人最后得分,但又不确定这个得分是否正确,让你来判断,这些给出的得分是否合法 解析:首先一个乘k^2,一个乘k,那么g

2017-07-31 17:13:18 709

原创 CodeForces 834B The Festive Evening

题目链接:http://codeforces.com/contest/834/problem/B 题意:有n个门口,k个护卫,n个门口分别允许对应的大写字母进入,一个门口开始进人时,就需要排一个护卫去,知道这个门的所有人进完才能把护卫召回来,现告诉你来宾的顺序,问你是否会出现护卫人手不足的情况 解析:直接扫一遍,模拟下就可以了#include <bits/stdc++.h>using name

2017-07-31 17:03:58 557

原创 CodeForces 834A The Useless Toy

题目链接:http://codeforces.com/contest/834/problem/A 题意:有v,<,^,>,四个符号,分别由v顺时针旋转90度依次得到,现在告诉你其实符号,和结束符号,需要经过n次选择,问你是顺时针旋转获得,还是逆时针旋转获得,亦或是顺时针或逆时针旋转都能获得 解析:反正是一个为4的循环节,取一下模就出来了#include <bits/stdc++.h>using

2017-07-31 16:30:41 713

原创 UVA11729 Commando War

题目链接:https://vjudge.net/problem/UVA-11729 题意:有n个士兵,有n个任务,你要给这n个士兵下达任务,每个士兵你需要花费bi的时间下达任务,这个士兵需要花费ji的时间完成,你只有给一个士兵下达完任务以后才能给其他士兵下达任务,问你如何给士兵下达任务,才能使得完成所有任务的时间最小 解析:肯定是优先给完成任务时间长的士兵下达任务,因为下达任务的时间是不可避免的

2017-07-28 13:30:43 399

原创 UVA11292 Dragon of Loowater

题目链接:https://vjudge.net/problem/UVA-11292 题意:有n只龙,每个龙的能力为x,你有m个勇士,每个勇士的能力为y,你需要雇佣n个勇士去杀这n只龙,每个勇士雇佣费用为y,每个勇士只能被雇佣一次,且只能斩杀能力不超过y的龙,问你要杀掉这些龙的最少花费 解析:先把龙和勇士都排个序,然后从能力小的勇士开始找他能杀的龙,这样的花费就是最小的#include <bits

2017-07-28 13:18:04 296

原创 hdu6033 Add More Zero

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033 题意:让你求2^m-1次方里面是几位数,即对2^m-1取以10为底的对数 解析:由于不减一也不可能出现增加位数的情况,所以可以直接对2^m次方求对数,换底公式得ans = m*log(2)/log(10)#include <bits/stdc++.h>using namespace std;

2017-07-27 21:40:54 337

原创 hdu6045 Is Derek lying

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6045 题意:有n道题,有两个人做题,每道题有三个选项ABC,只有一个正确答案,现在告诉你a和b的分数,问你这个分数是否有可能 解析:首先计算有多少道题是选不一样的,如果不一样的个数小于分差,那么肯定是输出Lying的,然后如果两个人的分数之和大于n,那么说明,他们至少有a+b-n道题是选一样的,所以

2017-07-27 21:40:27 366

原创 hdu6055 Regular polygon【思维+几何基础】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6055 题意:给你n个坐标为整数的点,让你求有有多少个正多边形 解析:首先这个正多边形一定是正四边形,因为点是整点,接下来需要判断有几个,那么枚举两个点,然后去找这条线段构成的正方形是否存在,找正方形,用坐标旋转即可(90度很特殊,算起来很快)#include <iostream>#include

2017-07-27 21:13:27 453

原创 hdu6047 Maximum Sequence【贪心+线段树】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6047 题意:给你一个序列a,和一个序列b,让你构造n(an~an+1)个数出来,使得这n个数的和最大,构造出来的数满足ai<={aj-j | bk<=j#include <iostream>#include <cstdio>#include <cstring>#include <string>

2017-07-27 21:11:57 353

原创 hdu6050 Funny Function【打表+找规律+矩阵快速幂】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6050 题意:看公式,求fm,1 解析:打表找规律 直接找答案的规律,根据题目的公式来推,太难了,直接打个表看规律,好看点 先处理处第一行(用矩阵快速幂来做),然后分奇偶来找规律,找规律是玄学问题,难以解释。。。(详情见代码) 打表#include <bits/stdc++.h>using n

2017-07-27 21:11:23 766

原创 hdu3072 Intelligence System【强连通】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3072 题意:有n个人,0要把消息传给其他人,但是他们只会把消息传给认识的人,每个传递消息的人都必须花费一定的价值,但是如果若干个人相互之间都可以传递消息的话,就不用花钱,问你最少花费多少,使得0号能把消息传给所有人 解析:首先如果相互认识就不用花钱,那么先强连通缩点,构成一个无环有向图,然后维护每条

2017-07-26 20:59:46 398

原创 hdu3639 Hawk-and-Chicken【强连通】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3639 题意:有n个小朋友要做游戏,但是需要选一个Hawk出来,老师决定让小朋友通过投票的方式来选举这个扮演者,每个小朋友都有一个手帕,代表支持一个人(其实手帕没卵用),把他理解为支持就好了,支持具有传递性,比如A支持B,B支持C,那么C就有两个人支持了,于是在一个强连通里面,每个人都有v-1个人支持,

2017-07-26 20:15:39 328

原创 hdu3861 The King’s Problem【强连通+最小路径覆盖】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861 题意:一个国王掌管着n做城市,有m条有向道路,为了方便管理,国王要把这n个城市划分成尽可能少的集合,首先强连通必须是一个集合里面,除此之外,一个集合里面的任意两点需要满足,u可以达到v,或者v可以达到u,问你最少的集合数 解析:强连通缩点以后,就相当于问你用最少的不重叠路径去覆盖这个图,那也就

2017-07-24 15:58:30 593

原创 poj2553 The Bottom of a Graph【强连通】

题目链接:http://poj.org/problem?id=2553 题意:现在还不是很明白,总之是要找强连通分量出度为零的点,一开始我认为如果有多个这样的分量就无解,结果WA了,看了讨论,发现只用找出度为零的就可以了,再看一遍题目还是没看懂。。。 解析:出度为零的联通分量,就直接强连通缩点,然后找出度为零的就可以了,主要还是题意。。。很难受#include <iostream>#inclu

2017-07-24 13:54:17 357

原创 poj2186 Popular Cows【强连通】

题目链接:https://vjudge.net/contest/56104#problem/J 题意:有n只牛,a认为b受欢迎,b认为c受欢迎,那么a也认为c受欢迎,问你有几只牛是被其他所有人认为受欢迎 解析:如果把每个牛看成一个点,谁认为谁受欢迎,看成是一条有向边,那么就相当于问,有几个节点,是这个图上其他任意节点都可达的,首先强连通缩点,对于每一个强连通分量里面的任意两点一定是可达的,缩点以

2017-07-23 16:17:19 312

原创 hdu3836 Equivalent Sets【强连通】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3836 题意:有n个集合,已知一些集合是一些集合的子集,你先要证明这n个集合都是相等的,集合的相等要证两遍,x是y的子集,y是x的子集,那么他们是相等的,问你在已知条件下,最少要证几次再能证得n个集合相等 解析:这题和hdu2767很像,也是相当于问你最少加几条边能使得它构成强连通#include <

2017-07-23 15:27:38 249

原创 hdu2767 Proving Equivalences【强连通】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2767 题意:给你n个矩阵,问你要证明多少次,才能证明这n个矩阵之间相互相等,比如要证明a,b,c,d之间相互相等,可以证明a=b,b=c,c=d,d=a,那么要证4次,现在已经告诉你了m个矩阵相等,问你你还需要证几次 解析:如果把矩阵看成点,然后把已经相等的部分,看成一条有向边,那么题目就相当于问你

2017-07-23 14:52:05 419

原创 hdu1827 Summer Holiday【强连通+贪心】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827 题意:中文题 解析:首先做强连通缩点,每一个强连通分量里的每个点都是可以互相联系的,而对于每个强连通分量之间,如果一个强连通的入度为零,那么你不得不联系他,否则一定可以通过其他人联系到这一群人,所以,把每个强连通分量的入度处理出来,然后找入度为零的强连通分量,去里面的最小值,求和即是答案#in

2017-07-23 12:26:05 347

原创 hdu1269 迷宫城堡【强连通分量】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:中文题 解析:判断强连通分量是否为1#include <bits/stdc++.h>using namespace std;const int maxn = 1e4+100;vector<int>G[maxn];vector<int>rG[maxn];vector<int>vs

2017-07-22 19:05:27 363

原创 hdu5222 Exploration【并查集+拓扑排序】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5222 题意:有一个探险家,探险一个地方,这个地方有n个洞穴,有若干条边,有的边是有向边,有的是无向边,每条边在走过后就坍塌,问你这个探险家能不能选择一个点,然后经过最少一个点,然后回到原点 解析:对于所有的无向边做并查集,如果对于两个点,在未合并前就已经是一个集合了,那么就存在环,即有解,若果此时没

2017-07-22 14:04:13 407

原创 poj2367 Genealogical tree【拓扑排序】

题目链接:http://poj.org/problem?id=2367 题意:有n个人,他们之间有血缘关系,即第i行表示这些非零数都是i的儿子,现在要决定发言顺序,从辈分高的开始 解析:裸的拓扑排序,%d手抖写成%x(WA哭)#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include

2017-07-22 12:51:12 365

原创 poj1094 Sorting It All Out【拓扑排序】

题目链接:http://poj.org/problem?id=1094 题意:有26个字符,你输入形如x#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <queue>using namespace std;const int maxn = 205;int in[maxn];

2017-07-22 10:53:49 309

原创 poj3687 Labeling Balls【拓扑排序】

题目链接:http://poj.org/problem?id=3687 题意:有n个小球,编号为1到n,让你给这些小球分配重量,首先若果没有明确说明哪个比哪个轻的话,那么编号越小的越轻,输入会告诉你m组关系,表示哪个小球比哪个轻,现在让你给这些小球排序,输出编号1到n的小球排完序后各个小球所在的位置 解析:这题和hdu4857很像,只不过输出变动一下就可以了#include <iostream>

2017-07-21 15:48:19 278

原创 hdu2647 Reward【拓扑排序】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意:让你给n个人发工资,然而这n个人心理都以一个预估,也就是某某应该比某某的工资高,基本工资是888,问你能否满足所有人的预估,如果能最少给多少工资 解析:反向建图,然后做拓扑排序,获得每个人的权重,最后权重和+n*888就是结果了#include <bits/stdc++.h>using

2017-07-21 15:21:33 343

原创 hdu3342 Legal or Not【拓扑排序】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题意:有n个人,他们之间有着师徒关系,现在告诉你m组关系(x,y),即x是y的师傅,现在问你这些关系是否出现混乱 解析:题目求解拓扑排序是否有可行解#include <bits/stdc++.h>using namespace std;const int maxn = 105;vecto

2017-07-21 14:54:38 277

原创 hdu4857 逃生【反向建图+拓扑排序】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 题意:中文题 解析:题意很明显是拓扑排序,但是按题目描述来说,对于有m组限制即a必须在b前面出去,而对于那些没有限制的就必须按照标号从小到大出去,也就是说假设有三个人,3号必须在1号前面除去,2号没限制,那么出去的顺序为3 1 2,为了满足这个需求,反向建图+拓扑排序+优先队列+逆序输出#in

2017-07-21 14:22:17 451

原创 hdu1285 确定比赛名次【拓扑排序】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 题意:中文题 解析:拓扑排序裸题#include <bits/stdc++.h>using namespace std;const int maxn = 505;vector<int>G[maxn];int in[maxn];vector<int>ans;int main(void

2017-07-21 13:35:16 363

原创 poj2594 Treasure Exploration【最小路径覆盖】

题目链接:http://poj.org/problem?id=2594 题意:给你一个有n个点,m条边的有向图,你派若干个机器人去探路,问你最少派几个机器人能把全部路走完,每个结点可以重复走 解析:很明显的最小路径覆盖,由于可以重复走,所以要用floyd缩点处理以后,ans = n-最大匹配#include <iostream>#include <cstring>#include <algo

2017-07-19 13:52:54 314

原创 hdu2255 奔小康赚大钱【最大权完美匹配】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:中文题 解析:最大权完美匹配裸题,直接上km板子#include <bits/stdc++.h>using namespace std;const int maxn = 305;const int inf = 0x3f3f3f3f;int g[maxn][maxn];int l

2017-07-19 12:08:20 297

原创 poj2446 Chessboard【最大匹配】

题目链接:http://poj.org/problem?id=2446 题意:有一个n*m的棋盘,上面有k个洞,问你能不能用1*2,如果能就输出YES,否则输出NO 解析:如果把一个1*2的砖块能铺上去,看成一个格子和他相邻格子是有条边的,那么就可以把这个棋盘构成一个二分图,那么你只需要判断最大匹配是否等于空格数就可以了,注意:题目是先输入y再输入x#include <iostream>#in

2017-07-19 10:11:50 336

原创 hdu2389 Rain on your Parade【二分图最大匹配-HK算法】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2389 题意:有m个宾客,n把雨伞,预计时间t后将会下大雨,告诉你每个宾客的位置和速度,每把雨伞的位置,问你最多几个宾客不淋雨 解析:很显然的二分图匹配,不过图规模有点大,所以匈牙利这种O(VE)的估计就过不了,而Hopcroft-Carp这种O(sqrt(v)*E)的就不会超时,就当测试下板子#in

2017-07-19 01:29:28 762

原创 hdu1847 Good Luck in CET-4 Everybody!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847 题意:中文题 解析:还是一样从必败态往前推#include <bits/stdc++.h>using namespace std;const int maxn = 1005;int a[maxn];int win[maxn];int main(void){ int n;

2017-07-17 21:31:06 514

原创 hdu1846 Brave Game

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1846 题意:中文题 解析:可以从先手的必败态推到下一个状态,如果只有0个石头,那么肯定是必败态,然后一个石头就可以从从0这个状态往前推一个变成必胜态,以此类推#include <bits/stdc++.h>using namespace std;const int maxn = 1005;in

2017-07-17 21:06:26 271

原创 hdu1564 Play a game

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1564 题意:8600和ailyanlu玩游戏,游戏规则是,有一个n*n的棋盘,棋盘上面有一颗棋子,棋子在棋盘的角落,轮到每个人的时候,每个人只能把这个棋子移动一个,只能左右上下移动,且不能移动到被访问过的格子,告诉你棋盘大小,8600先手,问你谁能赢 解析:首先每个人肯定是采用最优策略,那么肯定是会

2017-07-17 20:24:52 318

原创 hdu4160 Dolls【最小路径覆盖】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4160 题意:有n个套娃,问你把这些套娃组装起来,最后剩多少个套娃 解析:其实可以理解为一种最小路径覆盖,如果a能套住b,就建一条b->a的边,建完图以后,最小路径覆盖 = 顶点数-最大匹配#include <bits/stdc++.h>using namespace std;const int

2017-07-17 13:59:16 318

原创 hdu2444 The Accomodation of Students【二分图判断+最大匹配】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444 题意:有n个学生,这n个学生中有m对关系,问你能否把他们分成两组,每组里,他们相互都不认识,如果能输出两组中的最大人数 解析:分成两组,组里的人都互不认识,就是判断这个图能否构成二分图,然后找最大匹配#include <bits/stdc++.h>using namespace std;c

2017-07-16 21:39:20 337

原创 poj3692 Kindergarten【最大独立集】

题目链接:http://poj.org/problem?id=3692 题意:有一个幼儿园,老师想选若干个男女生一起做游戏(选出来的人必须全部相互认识),现已知女生之间全部都相互认识,,男生都相互认识,和若干女生和若干男生相互认识,为最多能选出多少人一起做游戏 解析:这是一个最大独立集的问题,构图的方式是:如果男生女生之间相互不认识就建一条边,然后去找最大匹配,拿顶点数-最大匹配,邻接矩阵好构图

2017-07-16 18:24:21 350

原创 hdu2768 Cat vs. Dog【最大独立集】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2768 题意:有c只猫,d只狗,有n条意见,每条意见表面保留哪只宠物,丢到哪只宠物,问你最多满足几个人的意见 解析:可以把保留猫的看成一群人,保留狗的看成一群人,这样就构成了一个二分图,然后保留猫和保留狗的人出现分歧就连一条边,问你最多满足几个意见,也就相当于求这个二分图的最大独立集,最大独立集+最小

2017-07-16 15:29:18 434

原创 hdu3729 I'm Telling the Truth【二分图匹配】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3729 题意:有n个学生,他们没有告诉老师自己的分数,只是说了自己的排位区间,即从xi到yi,但是有些学生说了谎,现在问你那些学生说了实话,由于有多种可能,让你输出字典序最大的 解析:也就是求二分图匹配,从顶点编号最大的开始找增广路,这样能保证字典序最大#include <bits/stdc++.h>

2017-07-15 22:30:33 300

原创 hdu2063 过山车【二分图匹配】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 题意:中文题 解析:二分图匹配裸题#include <bits/stdc++.h>using namespace std;const int maxn = 5000;struct node{ int to,next;}edge[maxn];int head[maxn],cn

2017-07-15 14:24:52 232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除