ACM/ICPC
文章平均质量分 73
Tyuio28
这个作者很懒,什么都没留下…
展开
-
2015 多校联赛 ——HDU5294(最短路,最小切割)
Tricks DeviceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1977 Accepted Submission(s): 509Problem DescriptionInnocent Wu f转载 2015-07-30 20:06:53 · 420 阅读 · 0 评论 -
hdu 5131(2014 广州—模拟)
题意:给你n个人以及他们的杀人数。先按杀人数从大到小排名输出,然后是一些询问一个人名,①输出杀人数比他大的人数和+1;②如果有人杀人数和他一样而且名字的字典序比他小,输出人数+1,没有则无视。#include #include #include #include #include #include using namespace std;typedef long lo原创 2015-10-06 21:25:11 · 556 阅读 · 0 评论 -
hdu 5122(2014北京—dp)
题意:从n个数中任选一些数,问有多少种选法使他们异或和不小于M思路:dp[i][j]表示选i个数异或和为j,则方程dp[i][j] = dp[i-1][j](不选i)+ dp[i-1][j^a[i]]#include #include #include #include using namespace std;typedef long long ll;c原创 2015-10-06 17:36:39 · 539 阅读 · 0 评论 -
hdu 5120(2014北京—求圆相交)
题意:求环的相交面积思路:通过画图可知,面积= 大圆相交面积 - 大小圆相交面积*2 + 小小圆相交面积 再通过圆相交模板计算即可#include #include #include #include #include using namespace std;typedef long long ll;#define PI 3.141592654double dis原创 2015-10-06 17:34:45 · 480 阅读 · 0 评论 -
hdu 5130(2014广州 圆与多边形相交模板)
题意:一个很多个点p构成的多边形,pb 设p(x,y), (x - xb)^2+(y - yb)^2 / (x - xa)^2+(y - ya)^2 = k^2所以可以化成圆的一般式x^2 + y^2 + dx + ey + f = 0;推公式:圆心:(-d/2,-e/2) 半径:(sqrt(d*d + e*e - 4*f)) / 2得出圆后,套模板求原创 2015-10-06 17:21:35 · 703 阅读 · 0 评论 -
hdu 5446(中国剩余+lucas+按位乘)
题意:c( n, m)%M M = P1 * P2 * ......* PkLucas定理是用来求 c(n,m) mod p,p为素数的值。得出一个存余数数组,在结合中国剩余定理求值其中有个地方乘积可能超范围,所以按位乘(数论方面薄弱啊,学习学习)。#include #include #include #include #include using namesp原创 2015-09-15 21:53:19 · 869 阅读 · 0 评论 -
hdu 5534(dp)
InputThe first line contains an integer T indicating the total number of test cases.Each test case starts with an integer n in one line,then one line with n−1 integers f(1),f(2),…,f(n−1).原创 2015-11-04 13:52:15 · 1324 阅读 · 0 评论 -
hdu 5533(几何水)
InputThe first line contains a integer T indicating the total number of test cases. Each test case begins with an integer n, denoting the number of stars in the sky. Following n lines, each原创 2015-11-04 13:45:16 · 2112 阅读 · 0 评论 -
hdu 5532(最长上升子序列)
InputThe first line contains an integer T indicating the total number of test cases. Each test case starts with an integer n in one line, then one line with n integers a1,a2,…,an.1≤T≤2000原创 2015-11-04 13:39:22 · 1264 阅读 · 0 评论 -
*hdu 5536(字典树的运用)
InputThe first line of input contains an integer T indicating the total number of test cases.The first line of each test case is an integer n, indicating the number of chips produced today原创 2015-11-04 13:33:47 · 1099 阅读 · 0 评论 -
hdu 5538(水)
InputThe first line contains an integer T indicating the total number of test cases.First line of each test case is a line with two integers n,m.The n lines that follow describe the array原创 2015-11-04 13:26:09 · 1040 阅读 · 0 评论 -
hdu 5489(LIS最长上升子序列)
题意:一个含有n个元素的数组,删去k个连续数后,最长上升子序列 /*思路参考GoZy思路: 4 2 3 [5 7 8] 9 11 ,括号表示要删掉的数,所以 最长上升子序列 = ] 右边数A的lis + [左边最大值小于A的lis 即相当于枚举删除的所有情况,并求它们的LIS,取最大值如本例 : 最长 = 2[ 9 11] + 2[2 3], 然后将框从左原创 2015-10-01 16:29:33 · 968 阅读 · 0 评论 -
hdu 5437Alisha’s Party(优先队列)
题意:邀请k个朋友,每个朋友带有礼物价值不一,m次开门,每次开门让一定人数p(如果门外人数少于p,全都进去)进来,当所有人到时会再开一次,每次都是礼物价值高的人先进。/*小伙伴最开始gg了,结果发现是开门没排序1.如果价值相等,先到的进; 2.开门的时间要进行排序;Sample Input15 2 3Sorey 3Rose 3Maltran原创 2015-09-13 22:53:06 · 639 阅读 · 0 评论 -
hdu 5493 (树状数组)
题意:在一个队列中,你知道一个人在他左边或者右边比他高的人的个数,求字典序最小的答案思路:先将人按 矮-->高 排序,然后算出在每个人前面需要预留的位置。树状数组(也可以线段树)解决时,先二分查找合适的位置,如果合理则标记,每次查找时 枚举的人数 - 前面已占的人数 = 可预留位置判断分别在它左边 或者 右边时可能的最小值进行比较。预留的位置①:pnode[i].num(即比他原创 2015-09-30 01:21:20 · 522 阅读 · 0 评论 -
hdu 5492 (暴力+nice)
题意:在矩阵中,找一条路从 (1,1)->(n,m),使方差最小思路: (N+M−1)∑N+M−1i=1(Ai−Aavg)2将N + M - 1乘进去,即求(N + M - 1)*A[i] - (A[i] + ..... + A[N]) 的和原创 2015-09-28 21:41:51 · 483 阅读 · 0 评论 -
hdu 5112 (2014北京 水)
题意:有个人在跑步,一直每个时间他所在的位置,求最大速度#include #include #include #include using namespace std;struct node{ int t; int dis;}pnode[100005];bool cmp(node a,node b){ return a.t < b.t;}原创 2015-10-06 17:23:56 · 566 阅读 · 0 评论 -
hdu 5113(2014北京—搜索+剪枝)
题意:有N*M的棋盘,用K种颜色去染,要求相邻块不能同色。已知每种颜色要染的块数,问能不能染,如果能,输出任一种染法。最开始dfs失败了- -,优先搜索一行,搜完后进入下一列,超时。本来以为搜索不行,看别人给的思路就是搜索+剪枝。但是一直不知道该怎么剪,看了解题报告才发现,剩下的格子的数量+1必需是剩余最多种类棋子的两倍,否则必定会有相邻存在。例如 3*3的空格中,一类棋子最多原创 2015-10-06 17:27:32 · 512 阅读 · 0 评论 -
hdu 5119(2014北京)
题意:随机选择一个数,如果后面有比他小的就进行交换,直到没有为止(算一轮)。求多少轮后为递增序列思路:倒着找,如果有比经过的最小数大的,ans+1#include #include #include #include using namespace std;int a[1000005];int main(){ int T,n; scan原创 2015-10-06 17:32:29 · 381 阅读 · 0 评论 -
hdu 5137(2014广州—最短路)
题意:给你一个图,求删除一个点后使1->n的距离最大思路:枚举删除点,然后求最短路,取这些最短路的最大值#include #include #include #include #include #include #include using namespace std;typedef long long ll;const int INF=0x3f3f3f3原创 2015-10-08 10:44:34 · 413 阅读 · 0 评论 -
hdu5444(模拟)
题意:建树,给你几个点,要求输出走到各个点的路径(左为E,右为W,树的遍历)#include #include #include using namespace std;int tree[1100];int ls[1100];int rs[1100];int nCount = 0;void add(int root, int value){ if原创 2015-09-13 23:04:49 · 478 阅读 · 0 评论 -
hdu 5573Binary Tree
Binary TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 251 Accepted Submission(s): 143Special JudgeProblem DescriptionThe原创 2015-12-23 18:45:39 · 619 阅读 · 0 评论 -
hdu 5583 Kingdom of Black and White
Kingdom of Black and WhiteTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 585 Accepted Submission(s): 193Problem DescriptionI原创 2015-12-23 18:39:14 · 681 阅读 · 0 评论 -
hdu 5441 (并查集)
题意:给你n个点,m条边构成无向图。q个询问,每次一个值,求有多少条路,路中的边权都小于这个值a->b 和 b->a算两种思路:把权值从小到大排序,询问从小到大排序,如果相连则用并查集相连形成联通块x个点可以形成:x * (x - 1)如果新增的路使两个联通块和并则数量 增长了:(num[1]+num[2])×(num[1]+num[2]-1) - num[1] × (num[原创 2015-09-15 11:41:26 · 455 阅读 · 0 评论 -
hdu 5438(拓扑+bfs)
题意:建图,删掉所有连接点小于2的点,直到不能删为止,问最后剩余的联通块中,点的数量是奇数的联通块中的点的权值和。思路:拓扑删点,bfs计算#include #include #include #include #include using namespace std;typedef long long ll;vectorq[10005];int p[100原创 2015-09-13 23:14:10 · 504 阅读 · 0 评论 -
hihocoder1258(水)(2015ACM/ICPC北京站)
题意:给你B,C,S三种模式,当出现S时直接得分最多300(即perfect)当是B,C时后面会跟一个数字,当后面的数字是从1开始的连续时,直接得分最多300(即perfect)问给你一系列,最多能得到多少个pefect思路:当出现S时直接+,当出现B或者C时,判断它们后面是否有1,有则+做的时间想复杂了- -#include #include #i原创 2015-11-17 11:24:04 · 762 阅读 · 0 评论 -
hihocoder1257(构造)(2015北京ACM/ICPC)
题意:给你n条蛇,a[i]的长度为i,要求组成一个矩形。奇数蛇可折叠奇数次,偶数蛇折叠偶数次,然后按蛇的次序输出(即一条蛇的输出只能是一个方向的)2 31 21 3 2 31 1 2 1 2 22 51 41 5 2 51 1 2 1 2 21 2 1 3 2 3 2 43 53 41 4 1 52 4 2 5 3 52 2 2 3原创 2015-11-22 15:54:33 · 646 阅读 · 0 评论 -
hihocoder 1249(2015ACM/ICPC北京)
题意:给你一块正方形的土地,里面有矩形的草地,要求把土地分成两份,满足以下两个条件1.两边的绿洲,左边>=右边,差值尽可能的小2.在满足1的情况下分给左边的土地尽快能的多而且绿洲不会出现覆盖思路:将绿洲压到你给一维矩阵中,然后从左往右加,当ls*2 >= sum,往后面寻找最近的一个p[i] != 0(即存在绿洲的地方)Orz:第一次没对,就YY绿洲原创 2015-11-17 12:15:00 · 574 阅读 · 0 评论 -
hihiocoder 1255(搜索)(2015ACM/ICPC北京站)
题意:给你四个矩形,判断能否从中选出3个组成一个矩形思路:1.搜索,如果两个能组成一个新的,则将他们合并,继续搜索2.暴力判断最开始没注意到3,一直以为要用4个,WR#include #include #include using namespace std;const int maxn = 10005;const int INF = 0x3f3f原创 2015-11-17 11:14:57 · 498 阅读 · 0 评论 -
hdu 5439(找规律)
The sequence is generated by the following scheme.1. First, write down 1, 2 on a paper.2. The 2nd number is 2, write down 2 2’s (including the one originally on the paper). The paper thus has 1, 2原创 2015-09-21 17:27:00 · 536 阅读 · 0 评论 -
hdu 5451(矩阵 +Fibonacci )
题意:求 [(5 + 2*sqrt(6))^(1 + 2^x)] % M基于hdu2256可以求(5 + 2*sqrt(6))^ n但是n特别大,我们可以找矩阵的循环节两种可能 1.mod-1 2. (mod+1) * (mod-1) /*(具体ACdreamers的广义裴波那切找循环节)在知道2256时,自己做了一遍,但是到时想到的是费马小定理(gg)p.s原创 2015-09-22 01:13:47 · 670 阅读 · 0 评论 -
hdu 5135(2014广州—状态dp)
t题意:给你n条边,构造任意个三角形,一个三角形恰好只用3条边,每条边只能一次,求面积最大值思路:最开始想的是先排序从大到小取,但感觉并不怎么靠谱。最多12条边,所以可以求出所有可能的三角形面积,然后就不知道怎么办了- -,看大神的解法,状态dp,但是没想出来怎么保存状态,ヾ(。`Д´。)后来发现别人都是用二进制(好吧,没想到),然后dp就行了.#inclu原创 2015-10-08 10:12:40 · 526 阅读 · 0 评论 -
hdu 5115(2014北京—dp)
题意: 有一排狼,每只狼有一个伤害A,还有一个伤害B。杀死一只狼的时候,会受到这只狼的伤害A和这只狼两边的狼的伤害B的和。如果某位置的狼被杀,那么杀它左边的狼时就会收到来自右边狼的B,因为这两只狼是相邻的了。求杀掉一排狼的最小代价。思路:感觉自己在动规上真的是啥都不会- -!,完全看不出来。dp[i][j]表示i~j的最小情况。再用k表示最后攻击的那一个所以公式 dp[i]原创 2015-10-06 17:30:13 · 479 阅读 · 0 评论 -
hdu 5475(线段树)
题意:两个操作:① 当为1时 ,乘上后面的数 ② 当为2时,除以第x次乘的数还说了2操作后面的n不会重复(就这明显看出线段树- -,然而并没有看出来,还是靠的队友)1则对每个节点赋值,2则将相应的点改为一,每次操作后进行一次询问#include #define MAXN 100010using namespace std;lon原创 2015-09-27 23:27:16 · 406 阅读 · 0 评论 -
hdu 5476 (计算几何)
题意:求三角形内∠MPB+∠APC=∠MPC+∠APB的轨迹长度- -1.基于M的中垂线 2.三角形内的圆弧(比赛只有看自己能否猜中),ps.以下是别人家的证明#include #include #include #include #include #include #include #include #inc原创 2015-09-28 17:07:58 · 413 阅读 · 0 评论 -
hdu 5491(位运算)
题意:给你n,a,b. 希望得到比n大,二进制1的个数在 a ,b之间的最小的数思路:①满足条件,输出 ②num 最小位,变成1 ③num > b从右到左找是1的最小位,加上一,即 n + 2 ^ i#include #include #include #include #include #include typedef原创 2015-09-28 20:03:29 · 325 阅读 · 0 评论 -
2015 多校联赛 ——HDU5335(Walk out)
Walk OutTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2001 Accepted Submission(s): 376Problem DescriptionIn an n∗m maze,原创 2015-07-31 17:28:34 · 472 阅读 · 0 评论 -
2015 多校联赛 ——HDU5319(模拟)
按照45度刷墙,红色的从左上 ->右下,蓝色从右上->左下,一种颜色对一个点只能刷一次,红 + 蓝 ->绿模拟即过。(论英语的重要性!! 看半天才懂什么意思)#include #include #include #include #include using namespace std;char Map[60][60];int main(){ int n原创 2015-07-28 20:34:13 · 478 阅读 · 0 评论 -
2015 多校联赛 ——HDU5323(搜索)
Solve this interesting problemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 422 Accepted Submission(s): 98Problem Description原创 2015-07-29 14:46:18 · 444 阅读 · 0 评论 -
2015多校联赛 ——HDU5288(数学)
OO’s SequenceTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 449 Accepted Submission(s): 158Problem DescriptionOO has got a原创 2015-07-22 17:50:19 · 578 阅读 · 0 评论 -
2015 多校联赛 ——HDU5301(技巧)
题意:n*m矩阵,黑格子的位置是(x,y),将剩下位置划分为多个矩阵,每个矩阵必须接触边缘,求出划分矩阵的最大最小面积。题解:先换成 N1. min(left,right)> ansAnswer = min(max(up,down),min(left,right));2.为奇数正方形,且x,y 在正中央时,answer = ans-1;3.否则,an翻译 2015-07-25 20:37:29 · 532 阅读 · 0 评论