自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

No Program No Life

落寞是岁月的痕迹。

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

原创 【HDU5074】Hatsune Miku(简单DP)

题解摘自:http://blog.csdn.net/sr_19930829/article/details/40392311?utm_source=tuicool&utm_medium=referral 分情况讨论:当note[i] >0 (i>=2)时:当note[i-1]>0时: dp[i][note[i]]=dp[i-1][note[i-1]]+score[note

2016-08-31 12:19:55 219

原创 【HDU5857】Median(方法)

按区间分类讨论。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <set>#include <map>#include <queue>#

2016-08-20 18:37:19 213

原创 【HDU5828】Hard problem(计算几何)

参考博客:http://www.cnblogs.com/inmoonlight/p/5788081.html #include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <se

2016-08-20 18:33:25 169

原创 【HDU5867】Water problem(模拟)

直接打表。。也可以加上处理前缀和。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <set>#include <map>#include

2016-08-19 15:51:55 218

原创 【POJ】Square(DFS + 剪枝)

题目大意: 给你一些棍子的长度,问这些棍子能否组成正方形。 剪枝: 1.既然是正方形,长度总和肯定能被4整除。 2.最长的棍子的长度一定小于等于正方形边长。 3.满足上述两个条件,只要判断三边是否符合就可。看到网上一些题解上有对边长的排序,其实不排序也能过。#include <cstdio>#include <iostream>#include <cstring

2016-08-19 12:14:11 207

转载 【HDU5816】Hearthstone(状压DP)

推荐几篇好看懂的博客。 参考博客: http://blog.csdn.net/qq_21057881/article/details/52167285 http://blog.csdn.net/zzz805/article/details/52169725我的代码,是卡过去的。。#include <cstdio>#include <iostream>#include

2016-08-14 11:02:41 284

原创 【HDU5823】color II(状压DP)

记录一个菜逼的成长。。令dp[s]为子图S已经染色的最少染色数,那么有dp[s]=min(dp[s],dp[s^s0]+1)其中s0是S的独立子集,可以全部染成一种颜色。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>

2016-08-13 20:30:28 303

原创 【HDU5828】Rikka with Sequence(线段树)

记录一个菜逼的成长。。参考博客: http://blog.csdn.net/xtttgo/article/details/52184771无限T之后,参考了上面的博客。终于过了。。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstd

2016-08-13 20:23:10 417

原创 【HDU5821】Ball(贪心)

题目大意: 给你一个a序列 和 b序列,问能否经过操作把a变成b。操作:取出l 到 r的数,可以以任意的顺序放回。 题解: 假设有4个红球,初始时从左到右标为1,2,3,4。那么肯定存在一种方案,使得最后结束时红球的顺序没有改变,也是1,2,3,4。 那么就可以把同色球都写成若干个不同色球了。所以现在共有n个颜色互异的球。按照最终情况标上1,2,。。,n的序号,那么贪心

2016-08-12 20:37:10 340

原创 【HDU5826】physics(物理题 + 数学题)

题目大意: 给出在一条直线上的几个点的初始速度,位置和方向,并且C = V * A; 求t秒后速度为第k小的速度。因为完全弹性碰撞,碰撞前后速度和加速度交换,所以与位置无关。 t秒后第k小,其实也就是初始第k小。 所以只需要保存初始速度并排序。 推导答案: c = v * a; a = dv/dt; 得 c * dt = v * dv;两边积分得 2ct

2016-08-12 12:29:43 257

原创 【POJ3254】Corn Fields(状态压缩DP)

一道状态压缩DP入门的题。学习下状压DP。 题目大意: 给你一个n*m的图。为0不能放羊,为1可以放羊,一个格子只能放一只羊,并且不能有羊相邻的情况有多少种。状态压缩就是将状态用一个十进制数来表示,十进制数用二进制表示就可以表示状态,所以会用到位运算。 dp[i][j]:=第i行状态为j的方案数; 对于可以放羊的位置,如果放羊则为1,不放则为0; 样例第一行有8种情

2016-08-11 16:11:28 435

原创 【HDU5818】Joint Stacks(模拟)

记录一个菜逼的成长。。比较简单巧妙的一个做法是引入一个新的栈C,每次合并的时候就把A和B合并到C上,然后把A和B都清空. push还是按正常做,pop注意当遇到要pop的栈为空时,因为题目保证不会对空栈进行pop操作,所以这时应直接改为对C栈进行pop操作. 这样做因为保证每个元素最多只在一次合并中被处理到,pop和push操作当然也是每个元素只做一次,所以总复杂度是O(N)的. 另一种做法是用链

2016-08-10 13:35:44 430

原创 【HDU5813】Elegant Construction(贪心)

记录一个菜逼的成长。。将顶点按能到达的点数从小到大排序,排好序之后每个点只能往前面的点连边. 因而如果存在一个排在第i位的点,要求到达的点数大于i-1,则不可行;否则就可以按照上述方法构造出图. 复杂度O(N^2). PS:一道水题,训练的时候条件漏了。。好TM菜啊。Orz.#include <cstdio>#include <iostream>#include <cstring>#inc

2016-08-10 12:59:47 191

原创 【HDU5810】Balls and Boxes(数学题)

找规律推导 ans = n*(m-1)/m^2;#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <set>#include <map>#

2016-08-10 12:56:16 286

原创 【HDU5784】How Many Triangles(极角排序 + two-pointer)

题目大意: 给你一些点的坐标让你求出锐角三角形的个数。 题解: 数一数锐角的数量A和直角+钝角的数量B,那么答案就是(A-2B)/3。 暴力算的话是O(n^3)的。使用极角排序+two pointers就可以做到O(n2log n)。 这边钝角指代范围在90度到180度之间的角(不包括90和180)。#include <cstdio>#include <iostre

2016-08-08 15:41:39 321

原创 【HDU5800】To My Girlfriend(DP + 滚动数组)

题目大意: 指n个物品里面子集的权值和为m,并且这个子集里面有i、j, 没有k、l的子集的个数;(i,j,k,l分别不同) 题解: 令dp[i][j][s1][s2]表示前i个物品填了j的体积,有s1个物品选为为必选,s2个物品选为必不选的方案数(0<=s1,s2<=2),则有转移方程dp[i][j][s1][s2] = dp[i - 1][j][s1][s2] + d

2016-08-08 13:40:30 313

原创 BC#86.1003(HDOJ5806)NanoApe Loves Sequence Ⅱ

将不小于m的数看作1,剩下的数看作0,那么只要区间内1的个数不小于k则可行,枚举左端点,右端点可以通过two-pointer求出。 时间复杂度O(n)。 /(ㄒoㄒ)/~~#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorith

2016-08-08 10:29:43 338

原创 BC#86.1002(HDOJ5805)NanoApe Loves Sequence

求出前i个数里相邻差值的最大值fi,i到n里相邻差值的最大值gi​​,那么ans=∑i=1nmax(∣Ai−1−Ai+1∣,fi−1,gi+1)。 时间复杂度O(n)。 一道水题。。麻痹脑子抽了写了好久。。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include

2016-08-08 10:28:32 232

原创 【HDU5783】Divide the Sequence(贪心)

Divide the Sequence 把长度为n的序列分成尽量多的连续段,使得每一段的每个前缀和都不小于0。保证有解。 从后往前贪心分段即可。 /(ㄒoㄒ)/~~#include <cstdio>#include <cstring>typedef long long LL;const int maxn = 1000000 +10;LL sum[maxn];in

2016-08-08 10:27:28 258

原创 【HDU5793】A Boring Question(数学题)

找规律推导。 ans = (m^(n+1) - 1) / (m-1) 利用快速幂和乘法逆元对分数取模#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#inc

2016-08-08 10:26:09 331

原创 【HDU5802】Windows 10 (贪心 + dfs)

记录一个菜逼的成长。。Windows 10直接贪心就好比较直观的看法是使劲往下降,然后升回来或者使劲往下降然后停顿然后再使劲往下降。。。于是就能将问题变成一个子问题,然后dfs就好需要注意的是由于按up键也可以打断连续向下的功效所以应该记录停顿了几次,以后向上的时候用停顿补回来#include <cstdio>#include <iostream>#include <cstring>#inc

2016-08-08 10:24:44 288

原创 【HDU5795】 A Simple Nim(博弈)

sg[0]=0当x=8k+7时sg[x]=8k+8,当x=8k+8时sg[x]=8k+7,其余时候sg[x]=x;(k>=0)打表找规律可得,数学归纳法可证。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstd

2016-08-08 10:23:24 277

原创 【HDU1847】Good Luck in CET-4 Everybody!(博弈)

记录一个菜逼的成长。。简单博弈 暴力打表 只能取2的幂次#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <set>#include <map>#include

2016-08-08 10:22:05 278

原创 【HDU1536】S-Nim(博弈)

大致题意: 给你一个a数组 每次可以取a[i]个,q次询问,每次询问 共有m堆,因为sg函数是一堆的,所以将每堆的sg值异或就是答案。#include <bits/stdc++.h>using namespace std;const int maxn = 10000 + 10;int s[110];int sg[maxn];bool Hash[maxn]; /

2016-08-08 10:20:17 302

原创 组合博弈之SG入门

步骤1:将所有终结位置标记为必败点(P点); 步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点) 步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ; 步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。【HD1846】Brave Game 暴力SG表#include <bi

2016-08-08 10:16:14 339

空空如也

空空如也

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

TA关注的人

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