- 博客(53)
- 收藏
- 关注
原创 数列分块入门1-9(未完)
链接:数列分块入门数列分块入门1:题意:区间更新,单点查询代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mx = 50010;int num, block;int l[mx], r[mx];int belong[mx];int a[mx];int add[mx]...
2018-05-12 15:24:31
391
原创 Codeforces Round #469 (Div. 2)A,B,C,D
A. Left-handers, Right-handers and Ambidexterstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are at a water bowling training. There are l peop...
2018-03-10 23:34:44
662
原创 Codeforces Round #467 (Div. 2)A,B,C,D
A. Olympiadtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe recent All-Berland Olympiad in Informatics featured n participants with each scoring...
2018-03-09 14:33:47
284
原创 CodeForces - 198B Jumping on Walls
题意:一张n*2的图,‘X'代表不可走,’-‘代表可以走。一个忍者(0,1)开始起跳,有三种跳的方法,向对面往上跳k步,向上或者向下跳一步,每跳一次,洪水就会往上涨一格,问这个忍者能否跳出这张图。题解:bfs和dfs均可过,dfs需要优化暴搜顺寻代码bfs:#include<cstdio>#include<queue>#define Max 100010using ...
2018-02-07 22:55:46
374
原创 poj 2451 Uyuw's Concert
题意:在一个正方形区域内,划几条线,问线内最后剩下的面积。题解:半平面交的裸题。算法:排序增量法求半平面交,复杂度O(nlogn)(摘自《ACM-ICPC程序设计系列 计算几何及应用》)step1:将所有的半平面按照极角排序,排序过程还要将平行的半平面去重step2:使用一个双端队列deque,加入极角最小的两个半平面step3:扫描过程每次考虑一个新的半交面:A:whil
2018-02-04 12:43:14
240
原创 LightOJ 1017 Brush (III)
题意:有一把刷子宽度为w,只能沿x轴方向刷,现给出n个点,问这把刷子刷k次,最多能刷到几个点题解:很简单的一道dp,因为刷子只能沿x轴刷,所以只要看纵坐标就好了,这样输入的时候就不用结构体,直接单把纵坐标存在一个数组里就可以了。先把纵坐标排序,然后用dis数组记录下刷子的一段从每个点开始最多能刷到多少个点,接下来问题就简单了状态转移方程:dp[i][j] = max(dp[i - 1][j
2018-02-01 00:50:00
223
原创 hdu 5634 Rikka with Phi
题意:完成三种操作There are three types of queries: 1lr Change A[i] into φ(A[i]), for all i∈[l,r].2lrx Change A[i] into x, for all i∈[l,r].3lr Sum up A[i], for all i∈[l,r].题
2018-02-01 00:40:12
246
原创 hdu 5547 Sudoku
题意:4*4的矩阵,完成数独题解:小数据量,dfs+回溯,judge的时候自己画下图看下坐标就好了代码#include#includechar a[100][100];bool judge(int x, int y){ for(int i = 0; i < 4; i++) { if(a[x][i] == a[x][y] && i != y)
2018-02-01 00:34:37
216
原创 hdu 2586 How far away ?
题意:n个村庄用n-1条路连起来,询问m次,每次为两个村庄之间的最短路径,题解:n-1条路连接n个点,可以知道连接后的形状为树形,m次询问后输出m个答案,所以可以用离线Tarjan算法。代码#include#include#define Maxn 40005#define Maxq 205struct node{ int to; int next;
2018-01-31 00:13:12
140
原创 hdu 4864 Task
题意:给出n个机器,第i个机器的工作时间和工作能力分别是xi和yi,给出m个任务,第i个任务的所需时间和难度分别是xi和yi,若要用第i个机器来完成第j个任务,那么机器的工作时间和工作能力都要分别大于等于任务的所需时间和难度。每个机器只能完成一个任务,每个任务只能由一个机器来完成,求出给出的机器能完成的任务数量和最大收益值。每个任务的收益等于500*xi + 2*yi题解:贪心法。每个任务的收
2018-01-28 02:20:16
386
原创 hdu 4861 Couple doubi
题意:两个人轮流取球,大的人赢题解:打表找规律,发现p-1为循环节(官方题解是费马小定理)代码#includeint main(){ int k, p; while(scanf("%d %d", &k, &p) != EOF) { int x = k / (p - 1); if(x % 2)printf("YES\n"); else printf("NO\n")
2018-01-27 10:49:14
167
原创 UVA 1121 - Subsequence
这题和poj 3061一样,就是输入结束条件不一样,poj的用尺取法过的,这题就写个二分吧题意看下面链接的博客吧尺取法链接:http://blog.youkuaiyun.com/zztrhxnss/article/details/78055742二分法:#include#define M 100005int a[M];int pre[M];int n, s;bool judge(
2018-01-03 17:00:49
285
原创 hdu 4712 Hamming Distance
题意:给出n个字符串,计算出每两个字符串的最小Hamming Distance。Hamming Distance是a xor b题解:水题啊,本来暴力就能过,但是字符串的数据量有1e5,两重for肯定超时,所以拼人品的时候又到了,随机函数!字符串的范围是0 - 9 或者A - F,所以直接以十六进制输入就好了,十六进制输入用%x。随机的时候,随机次数是1e6,1e5的时候WA,1e7是TLE
2018-01-03 12:11:47
369
原创 hdu 4511 小明系列故事——女友的考验
题意:小明要和女友去约会,一共有n个点,小明在1号点,女友在n号点,小明想要从最短路径到女友的位置,但是奇葩的女友给了小明限制条件:1、小明只能往比当前点编号大的点走,2、女友给出了k条路径,小明走的时候不能过这些路径。题解:AC自动机+floyd算法,ac自动机来完成状态的转移,在跑floyd的时候要注意只能往编号大的点走AC自动机照着kuangbin巨巨模板打的,模板提就是爽,然后WA
2018-01-02 23:22:51
299
原创 LightOJ 1356 Prime Independence
题意:给出n个数,求最大集合,这个集合要求满足:任意两个元素a,b,当a % b == 0 && a / b == k,若k是质数,则a,b不能同时在这个集合内题解:最大独立子集问题,建一个二分图。当a的质因子等于b的质因子数+1的时候,即a,b的质因子数的奇偶性不同时,那么a,b就能建立关系。建好图后,最大独立集 = 点数 - 最大匹配。由于这题的数据两有点大,匈牙利算法应该会TLE,所以要
2018-01-02 20:03:38
265
原创 SPOJ - Horace and his primes
题意:一个数n1,把它质因数分解(相同的因数算一个),质因数的和为n2,以此循环,直到分解出的质因数的和为质数,求出集合n的长度。给出a,b,k三个数,求区间a,b中有多少数按照上述的分解得到集合的长度为k。题解:无脑打表啊!然后就TLE了,TLE到怀疑人生。但并不是打表超时了,而是搜索的时候,所以不能暴力搜索,要用二分法,lower_bound()和upper_bound()函数的运用对
2018-01-01 16:51:30
268
原创 UVA 10462 - Is There A Second Way Left?
题意:求出图的最小生成树和次小生成树,存在三种情况,不存在最小生成树,存在最小生成树但不存在次小生成树,存在次小生成树,对应输出三种情况题解:kruskal先求最小生成树,依次记录生成树的加入的边,再跑一次kruskal,和上一次不同的是,这次要跳过上次已经记录的边,然后看能否生成树就好了代码#include#include#define M 210#define INF 0x3
2017-12-30 16:52:19
220
原创 Educational Codeforces Round 35 (Rated for Div. 2)A,B,C
A. Nearest Minimumstime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputYou are given an array of n integer
2017-12-30 13:39:19
247
原创 Codeforces Round #453 (Div. 2)A,B,C
A. Visiting a Friendtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputPig is visiting a friend.Pig's hous
2017-12-20 23:31:44
291
原创 Codeforces Round #452 (Div. 2) A,B,C
A. Splitting in Teamstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere were n groups of students which
2017-12-17 18:48:22
431
原创 2017acm/icpc乌鲁木齐站赛后总结
距离比赛结束两周了,补完作业和各种乱七八糟的东西忙完,终于有时间写这个总结了。第一次参加区域赛,两个队友也是。这次赛区是新疆(可能这辈子就去那么一次),就抱着边打比赛,边旅游的心态去了。在新疆吃吃喝喝玩玩就不说了,主要讲下比赛吧。day0:报道。day1:热身赛。没带模板,只A了一个线段树/技巧题,B的计算几何板子题直接扔了,A题是线段树,但是听说数据很弱,暴力就能过,D题没看。d
2017-12-17 13:09:20
1213
原创 UVA 572 - Oil Deposits
题目链接:题目大意:给出了一块油田矩阵,‘ * ’代表空地,‘ @ ’代表油块,求该矩阵中油块的种类数量,连通的油块算一类,连通的意思是相邻或者对角线。分析:dfs, 水过。ac代码#include#define Max 105char maze[Max][Max];int n, m;int count;void dfs(int x, int
2017-10-14 12:08:07
178
原创 hdu 1501 Zipper
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1501题目大意:给出三个字符串str1,str2,str3,判断str1,str2是否为str3的子序列。分析:这题可用动态规划,也可用dfs,dfs版本很好理解,考虑剪枝的条件就可以了,其他细节比dp版本简单很多。ac代码#include#incl
2017-10-14 10:31:31
218
原创 hdu 1285 确定比赛名次
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1285题目大意:n支队伍,m场比赛,输出m场比赛的结果,用x,y表示x的排名在y之前,一次来确定最终的名次。最终结果可能有很多组,需要按字典序小的输出。(输入的数据保证正确,即不存在环)分析:简单的拓扑排序,因为肯定数据保证正确,所以不需要判断是否存在环。ac代码:#incl
2017-10-14 09:12:02
206
原创 UVA 439 - Knight Moves
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=380题目大意:马走日子形,给出起点和终点,输出最小步数。分析:bfs,水过。ac代码#include#include#includeusing namespace std;
2017-10-12 22:22:33
159
原创 UVA 673 - Parentheses Balance
题目大意:括号的匹配。分析:利用栈模拟一边,如果是左括号就加入栈,如果是右括号,就检验与栈顶元素是否匹配。需要注意的是:当遇到右括号时要判断栈是否为空,如果栈为空,就直接跳出;还有当遇到只有\0的情况,需要输出Yes,所以不能用scanf,要用gets输入。ac代码#include#include#includeusing namespace std;char str[13
2017-10-01 11:03:56
181
原创 UVA 442 - Matrix Chain Multiplication
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=383题目大意:矩阵链乘,学过线性代数应该都知道。分析:利用栈,每次遇到字母就加入到栈中,每次遇到)就把栈顶开始的两个元素拿出来计算,然后再加入到栈中,因为输入的括号肯定是匹配的,所以根本就
2017-09-30 19:40:07
262
原创 hdu 1016 Prime Ring Problem(素数环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016题目大意:素数环。分析:DFS + check,注意一下第一个数和最后一个数的和是否为素数就好了ac代码#include#include#define M 25int ring[M];int flag[M];int n;bool judge(int x){
2017-09-24 11:23:10
193
原创 hdu 1013 Digital Roots (九余数定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1013题目大意:给定一个数,这个数的各位上的数相加的和,若这个数小于10,则相加的和为这个数的数根;反之,就重复操作,知道和小于10,得到这个数的数根。这个数可能很大,所以要用字符串来存储。分析:根据题目大意简单模拟一边,肯定都会。现在利用另一种方法,9余数定理。定理证明:http://www.
2017-09-23 18:45:58
212
原创 hdu 1010 Tempter of the Bone(DFS + 奇偶剪枝 + 路径剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010题目大意:给出一个N*M的迷宫,‘X’代表墙,‘.’代表路,'S'代表起点,'D'代表终点,每走一步消耗一个单位时间,问能否恰好在T个单位时间,从起点走到终点。分析:如果只是简单的DFS肯定会超时,所以一定要加上剪枝,最重要的两个技巧就是奇偶剪枝和路径剪枝。 奇偶剪
2017-09-23 13:52:07
207
原创 hdu 1009 FatMouse' Trade
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009题目大意:Fatmouse有M puonds猫粮,想要和猫换取食物,猫看管着N间仓库,没见仓库里有J[i]pounds食物,需要用F[i]pounds猫粮才能换取,没见仓库的食物不用全部换取, J[i] * a% = F[i] * a%, 问Fatmouse最多可以换取多少食物。分析:很经
2017-09-22 00:23:02
255
原创 poj 3061 Subsequence (尺取法)
题目链接:http://poj.org/problem?id=3061题目大意:给出长度为n的数列,以及一个整数S,求总会和不小于S的连续子序列的最小长度。如果不存在解,则输出0。分析:二分法可解,但是时间复杂度为O(nlgn),优化算法后,时间复杂度为O(n)。ac代码#include#define M 100010int a[M];int min(int x, int
2017-09-21 19:11:31
261
原创 hdu 1007 Quoit Design
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007题目大意:题目半天没看懂,看了一下数据,手动算了一下,是最近点距离的一半。(最近点对问题)分析:方法一、暴力,时间复杂度为O(n²),效率太低了 方法二、分治
2017-07-27 10:40:15
222
原创 poj 1742 Coins
题目链接:http://poj.org/problem?id=1742题目大意:有一系列硬币,每种硬币都有自己的数量,要求这些硬币能在1 - m之间组成多少种面值。分析:多重背包的变形,在多重背包的同时加一个标记数组,只要该面值出现过,记录下来就可以,下次再出现直接continue;ac代码:#include#include#define M 100005#define N
2017-07-21 22:46:36
230
原创 poj 3280 Cheapest Palindrome
题目链接:http://poj.org/problem?id=3280题目大意:题目背景就不叙述了。有一个字符串,可以在字符串的任意位置添加或者删除字符,删除或者添加都需要花费,每个字符的花费均不同,为了使原字符串变为回文,求出最小花费。 回文:如abcba,abccba都是回文分析:1、添加和删除的操作本质是一样的,所以只要保存两者的最小值就可以了。
2017-07-21 09:40:56
172
原创 poj 3616 Milking Time
题目链接:http://poj.org/problem?id=3616题目大意:。。。分析:(最大递增子序列)ac代码#include#include#define Max 1005using namespace std;int dp[Max];struct milk{ int start; int end; int effic;}a[Max];boo
2017-07-19 22:52:14
194
原创 hdu 1028 Ignatius and the Princess III (整数拆分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028题目大意:整数拆分,把一个整数拆分,以4为例 4 = 4; 4 = 3 + 1; 4 = 2 + 2; 4 = 2 + 1 + 1;
2017-07-09 00:01:42
203
原创 hdu 2063 过山车(最大匹配 匈牙利算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063题目大意:(题目很短,所以直接复制题目了)RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XH
2017-07-06 22:41:37
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人