- 博客(38)
- 收藏
- 关注
原创 HDU 6397 Character Encoding 容斥 2018杭电多校第八场
Character EncodingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 510 Accepted Submission(s): 194 Problem DescriptionIn computer sc...
2018-08-15 23:15:19
277
原创 HDU 6394 Tree 树分块或者LCT 2018杭电多校第七场
TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 380 Accepted Submission(s): 130Problem DescriptionAlice and Bob are playing with a...
2018-08-14 18:28:09
514
原创 CodeForces 1013D Chemical table
题目大意:给你一个n*m的矩形,一开始有q个格子上被标记。对于任意两行两列,如果交汇的四个格子中有三个被标记,那么第4个会被自动标记。问你至少需要手动标记几个格子,使得整个矩形内的格子都被标记。思路:这是一个感觉很牛逼的思路题, 首先你要将问题转化以下, 一个点与这个点所对应的行和列都有关系, 所以我们可以把这个点想象成它连接了它所在的行和列, 这样你再回想一下题意, 三个格子自动生成...
2018-08-07 23:32:38
362
原创 HDU 6356 Glad You Came 线段树或反向RMQ 2018杭电多校第五场
Glad You CameTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 885 Accepted Submission(s): 327Problem DescriptionSteve has an integer a...
2018-08-06 23:22:02
319
原创 HDU 6311 Cover 欧拉回路记录路径 2018杭电多校第二场
Problem DescriptionThe Wall has down and the King in the north has to send his soldiers to sentinel.The North can be regard as a undirected graph (not necessary to be connected), one soldier can co...
2018-07-27 11:24:00
252
原创 BZOJ 1935 Tree 园丁的烦恼 cdq分治
Description很久很久以前,在遥远的大陆上有一个美丽的国家。统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草。有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思索一个问题,如果我们把花坛摆成六个六角形,那么……” “那么本质上它是一个深度优先搜索,陛下”,园丁深深地向国王鞠了一躬。 “嗯……我听说有一种怪物叫九头蛇,它非常贪吃苹果树……” “是...
2018-07-26 19:20:43
306
原创 HDU 5412 CRB and Queries 整体二分
Problem DescriptionThere are N boys in CodeLand.Boy i has his coding skill Ai.CRB wants to know who has the suitable coding skill.So you should treat the following two types of queries.Query 1: ...
2018-07-25 11:37:45
233
原创 HDU 6299 Balanced Sequence 2018多校第一场
Problem DescriptionChiaki has n strings s1,s2,…,sn consisting of '(' and ')'. A string of this type is said to be balanced:+ if it is the empty string+ if A and B are balanced, AB is balanced,+ i...
2018-07-24 16:42:32
335
原创 Number Sequence HDU - 4390 容斥
题意:首先给出n个数, 然后你可以随机再找n个数, 但必须要让你找的这n个数的乘积等于给出的n个数的乘积, 然后问你可以找出这n个数的方案数并模1e9+7;思路:首先我们先把给出的n个数乘起来变成一个数, 再之后根据唯一分解定理我们可以把这个数分解成一些质数, 那么问题不就变成了把这些质数随机组合成n个数的方案数了么, 但要注意此题是有顺序关系的, 比如 4 6 和 6 4 这两个是两种方案;我们...
2018-06-09 11:42:19
124
原创 Innumerable Ancestors HDU - 6031 (LCA + 性质二分)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6031题意:给一个n个节点的树, 并且这棵树始终以1为根节点并定义树的任意节点的深度为这个节点到1的最短距离, 之后给出m个查询, 每个查询包含两个集合A, 和B, 每个集合里各自有相同或不同的k个数, 现在问从这两个集合中各取出一个点, 然后这两个点的LCA的深度最大为多少;思路:这个题真的让我深深的...
2018-04-10 21:39:51
261
原创 Edge to the Root ZOJ - 3949 (树形DP)
Given a tree with n vertices, we want to add an edge between vertex 1 and vertex x, so that the sum of d(1, v) for all vertices v in the tree is minimized, where d(u, v) is the minimum number of edges...
2018-04-10 19:57:28
242
原创 UVA11419 我是SAM (最小点覆盖)
题意:给一个r*c的矩阵,某些格子中可能有一些怪物,可以在一行或一列防止一枚大炮,大炮会扫光整行/列的怪,问最少需要多少炮?输出炮的位置思路:首先把每行看成x集合里的r个点,每列看成y集合里的c个点,然后就会发现对于每个目标的x,y值其实就可以抽象成了这个x点和这个y点通过目标连成了一条边,而同一行的x点是通用的,同一列的y点是通用的,这样不就变成了用最少的点使得所有的边至少有一端被覆盖了么, 最...
2018-03-16 00:24:04
345
原创 Connected Components? CodeForces - 920E
题意:给出一个图, 然后求这个图的补图的连通块的数量, 节点数最大200000, 边数最大200000;思路:很有意思的一个题, 这个题一看觉得很简单, 但仔细想想貌似无从下手。。。。节点数和边数太大了。正常的想法就是求原图然后直接求连通块, 但是这样从节点数和边数上是过不去的。 这时就要想到要能一边遍历 一边把用过的点或边删掉不就好了, 这样下一次在遍历的时候遍历的点不就少了么。 怎么做到呢? ...
2018-02-10 10:27:25
231
原创 Distinct Substrings SGU - 510
题意:给出一个n, 然后让你找到一个只包含小写字母的字符串, 并且使得这个字符串的字串正好有n个, 如果这样的字符串有多个的话, 找到字典序最小的那个输出;思路:哇, 这个题是真的骚。。。以为是找规律。。整整三页纸的规律毛都没找到。。。然而旁边的ygay已经在爆搜了。。。后来看了看红书才知道是爆搜。。。佩服ygay的爆搜。。。。。知道爆搜之后就好做了。直接枚举所有情况。。爆搜剪枝的条件就是当前的串...
2018-02-09 10:36:14
201
原创 uva 12264 (Risk) 二分 + 最大流
题意: 首先有n个点, 然后每个点都一个权值ai表示这个点上的士兵数量,如果ai为0则表示这个点是敌人的, 如果大于零则表示这个点是自己的并且有ai个士兵, 现在你只有一次机会可以移动所有的士兵, 注意 每个士兵只能移动一次, 并且只有两种选择, 要么不动, 要么移动到相邻的一个单位处的的自己的点上, 并且自己的点在移动完之后至少要存在一名士兵。 另外再输入一个n * n的字符矩阵, 如果s【i】
2018-02-06 11:37:04
476
原创 hdu5887 Herbs Gathering (挂着dp牌子的搜索)
题意:有一个人做事情,每件事情价值v,耗时t,在规定的时间内做总价值和最大的事情,求最大价值;感想(可以直接跳往下面的思路):这个题真的是恶心死我了,卡了我将近两天的时间,读完题想了想,背包,绝对是背包,等等。。数据量怎么到1e9了,又想了想。有了!直接离散化,然后去重,然后用这个来进行dp,一共也就三个循环1e6可以过!好!做!,一天过去了。。。为什么一直wa呢?难道我背包都不会写了么。。。
2018-01-30 22:19:16
493
原创 CodeForces - 672D Robin Hood (思维二分)
题意城里有 n 户人家,每户人家有 mi 个金币。robin 每天从最富的人家偷一个金币送给最穷的一户人家。问 k 天后最富的一户人家比最穷的一户人家多多少金币。思路首先要想明白一个问题,金币只是进行交换用的,所以金币的总数是不变的,然后我们考虑一下最终的状态,最富的人一定是一个固定的金币数,最穷的呢,也是一个固定的金币数,那么我们把从最开始最富的人的金币数记录下来,一
2018-01-27 11:29:11
304
原创 Boke and Tsukkomi HDU - 4687
A new season of Touhou M-1 Grand Prix is approaching. Girls in Gensokyo cannot wait for participating it. Before the registration, they have to decide which combination they are going to compete as. E
2017-11-20 11:00:46
402
原创 Terrorists UVALive - 7302
题目大意:给一张n个点,m条边的无向图。共有q个询问,每次询问u到v的最短路。 n 思路:注意到边的的数量,n和m非常接近,所以可以近似于一棵树,这样,我们先抛出一棵最小生成树出来,然后之后这样肯定会有多出来的边,然后我们把多出来的边的端点都存下来,这样就出来了一些除了树上的点之外的点,这样我们再把这些点跑一边dij,这样之后我们对于查询u,v时
2017-11-15 13:34:49
204
原创 It's not a Bug, it's a Feature! UVA - 658
题意某个软件有n个漏洞m的补丁,而每个补丁修复漏洞有前提条件,即有些漏洞必须存在或不存在,每个补丁的修复时间各不相同,现在有n个漏洞,让你求出把这n个漏洞全部修复所花的最少时间。思路:因为字符串的长度关系,直接用二进制表示状态的转移然后跑一边最短路就好了;#include#include#include#include#includeusi
2017-11-15 13:28:48
292
原创 Prime Set ZOJ - 3988
Given an array of integers , we say a set is a prime set of the given array, if and is prime.BaoBao has just found an array of integers in his pocket. He would like to select at most
2017-11-15 13:23:39
391
原创 2017 ACM 区域赛青岛站(现场赛) K Our Journey of Xian Ends
Life is a journey, and the road we travel has twists and turns, which sometimes lead us to unexpected places and unexpected people. Now our journey of Xian ends. To be carefully considered are the f
2017-11-13 09:11:41
1214
1
原创 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor
There is a tree with nn nodes. For each node, there is an integer value a_iai, (1 \le a_i \le 1,000,000,0001≤ai≤1,000,000,000 for 1 \le i \le n1≤i≤n). There is qq queries which are d
2017-11-12 00:43:51
479
原创 矩阵快速幂+倍增法(纯模板)
Mat power(Mat M,int P){ Mat tot(1); while (P){ if (P&1) tot=tot*M; P>>=1,M=M*M; } return tot;}Mat count(Mat M,int P){ Mat M0,E(1),M1=E; while (P){
2017-07-27 23:44:06
368
原创 hdu 4081 Qin Shi Huang's National Road System
During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China ---- they were Qi, Chu, Yan, Han, Zhao, Wei and Qin. Ying Zheng was the king of the kingdom Qin.
2017-07-26 23:52:11
292
原创 二分图匹配 板子(匈牙利&HK)
仅仅是板子。HK:#include#include#include#include#includeusing namespace std;#define INF 1<<30;const int maxed=1000+10;bool used[maxed];int n,m,ma[maxed],mb[maxed],Ma[maxed],Mb[maxed],dis;vect
2017-07-18 12:13:18
394
原创 Queue CodeForces - 141C (思维脑洞题)
C. Queuetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIn the Main Berland Bank n people stand in a queue
2017-07-07 16:04:05
379
原创 Codeforces Round #419 (Div. 2) B. Karen and Coffee 预处理+技巧
. Karen and Coffeetime limit per test2.5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputTo stay woke and attentive during clas
2017-06-18 10:00:14
527
原创 哈理工训练赛 青蛙过河 dp
题目:在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是s到t之间的任意正整数(包括s,
2017-06-17 01:12:05
359
原创 UVA 1600 Patrol Robot bfs
题意:给出一个网格,这个网格中有一些障碍,求从左上角右下角的最短距离,且不能连续穿过K个障碍。分析:求最短路径嘛,首先想到的肯定会是bfs,那怎么判断连续K个障碍呢?因为是连续的嘛,所以如果下一个要搜的点不是障碍,那么它的k就是0了,然后因为要考虑障碍点了,所以不能简单地只记录已经扫过的点了,还要排除k值得影响,所以我这里加了一个K的数组来表示当前点的k值大小,如果要搜的点的k值比记录的小那么
2017-06-16 16:14:21
294
原创 POJ 3069 简单的贪心
题意:给出一些点和这些点能延伸的距离,标记最少的点使得所有的点都可以被标记到(一个点能左右延伸到另一个点,则另一个点视为被标记)。分析:走弯路了。。。直接贪心用循环从最做边开始走就行了。。。结果。。我一开始不知怎么着想错了。。。用的二分查找加减之后的最大值。。。。结果一直时间超限。。看了书之后突然意识到。。直接循环就行啊。这样也就从最左边到最右边。时间复杂度仅仅是o(n)。AC代码:#
2017-06-15 16:13:53
351
原创 POJ 3255 次短路问题+Dijkstra最短路优化问题
这个题真的是卡了我一天之久。。。倒并不是说它难。有一个地方一直没注意到结果一直wa。。。恶心的我都差点放弃了。。。好在最后改出来。。。这题懂得方法之后并不难。。就只是一个简单地Dijkstra求最短路问题。题意:给出一些点和一些路径,让你找到倒数第二条最短路径。分析:要是找到最短路径就好办了,直接无脑套用bellman-Ford或者Dijkstra就可以了,但题目让求次最短路径。想一想。次
2017-06-14 20:38:07
371
原创 uva 1625 Color Length (dp)
题意:有两个字符串,从两个字符串中取字符组成一个新串,并规定跨度L(c)表示该字符在新串中最大位置和最小位置的差,最终求所有L(c)的和;解:这个题的思路好想,就是用dp[i][j]来表示当前已经从第一个中取了i个从第二个中取了j个字符后的最小跨度,但麻烦的就是怎么实现这个状态,每次都重新算一遍每个的跨度时间肯定承受不了,所以有个简便的方法就是求当前已经有多少字符已经被取了但是最后一个该字符还
2017-06-04 11:24:54
284
转载 c++ BigInteger模板 非常好的板子
转一手非常好的BigInteger板子,虽然我也没太看懂,但经过无脑套用,还是很好用的。#include #include #include using namespace std; struct BigInteger{ int A[25]; enum{MOD = 10000}; BigInteger(){memset(A, 0,
2017-05-18 16:25:20
793
原创 OpenJ_POJ C16D Extracurricular Sports(找规律,大整数)
这个题题目大意不难懂,就是找到一堆数,使得这些个数得和等于这些个数的最小公倍数。分析:这就是一个存粹得找规律题,找到规律之后再套上一个大整数得模板完美解决。但是这个规律是真的卡到我了。。。。但是找到之后才发现原来这个规律很简单:首先不难发现,只有两个数得时候会输出-1,n=3时可以找到1,2,3,n=4时可以找到1,2,6,9,n=5时可以找到1,2,6,18,27.。。。。之后可以继续找下去
2017-05-18 15:23:55
430
原创 uva 116 Unidirectional TSP(dp-递归版)
拿到这个题,首先这个求最小和非常的简单,麻烦的是要求出最短路径。这个真的是卡了我一阵子。本来紫书上是有解答代码的,但我想用递归去实现,所以一直也就没看书上的代码。从网上搜了搜呢,也都是书上的做法,没有创意。但好在最终终于是想到了递归的实现方式:首先求和很简单的dp思想,路径只要在求和的基础上简单的加一个数组来表示对于这个最一个最小行来说,下一个最小行是多少就行了。直接上代码会很容易理解
2017-05-17 22:47:43
345
原创 uva307 dfs
把博客当作一个记录代码的地方吧。这个题想一想还真的挺不错的,能提高对回溯法的理解。题意不难理解,一堆切开的小木棒,然后把这些小木棒合起来,找到这些合起来的小木棒的最小长度,最关键的一点这些小木棒合起来的长度都是一样的。我开始的思路试枚举多少根小木棒,然后通过总的除以根数就得到了小木棒的长度,然后一一去判断,结果写着写着怎么也不会写了,就从网上借鉴了大神们的代码。思路:直接枚举长度,然后通过递归
2017-04-09 11:35:04
301
原创 uva12113 暴力枚举+回溯递归
第一个博客,就献给这道题吧。这道题其实思路不难,但也是搞了我一些时间,题意不难懂,就是给出一个4*4的棋盘,然后用2*2的纸去填充,并且最多用6张。首先突破口肯定在这个6上,纸的数量不多,再通过仔细观察后发现,纸摆放的位置只有9种情况,那现在思路已经很明确了:1、输进去数据2、一一枚举每张纸的每一个位置的情况3、回溯查找4、格式输出,收工。不多说,直接上代码。#includ
2017-04-08 12:09:37
1286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人