自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逝水流殇

我相信付出就有回报

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

原创 hdu 4737

奉献一个线段树nlogn的做法= = 网上各种暴力太不靠谱了= = 那个30*n的感觉还是不够好。。。。 按照暴力的思路 我们要找每一个i最右能到的位置ed 然后我们可以一个个的更新   利用x|0 = x 初始化每个点都是0 每一次到i这个位置的时候把i-1更新为0,然后一直往右添加点ed直到异或>=m为止 到下一个点的时候接着这个ed往右更新就行了 //#p

2013-09-14 22:34:39 592

原创 HDU 4689

出题人满满的恶意伤不起啊。。。。 一眼过去谁都以为状压dp= =  各种T就不说了。。 赛后想想这尼玛N^2水dp啊。。。 dp[now][left]表示到now,前面还有left个+号没有填。。 然后转移的时候这样考虑     如果当前s[now]=='+' 有2种选择,    我可以用当前的now去把now之前的某个+号填上(这样就有C(left,1)个+号给我选,然后到n

2013-08-21 11:24:07 1054

原创 hdu 4616 Game

树形dp  很容易想到的一种dp状态是dp[i][trap][fa]表示当前结点为i,经过trap个陷阱,从fa那里转移过来的最优解,虽然空间理论上只有O(n),但是要写成代码就得用vector或者map什么的。。。 明显的感觉要挂。。 (我赛后用map写500ms过了。。。数据弱么。。)多校的时候想到了这种状态。。但是没敢写T_T  4618那题也是这样 唉 太坑了T_T 以后不管怎样先写了再

2013-07-27 21:50:30 955 1

原创 UVA 10829 L-gap substrings

求字符串中满足UVU形式子串个数,其中V的长度固定为gap,U不能为空       首先枚举U的长度l,然后类似于poj3693那题的方法,将原串分为n/l组;      比如     bbaabaaaaa   l = 2时,分成    bb |  aa |  ba |  aa|  aa       然后显然有个性质——左边的那个U必然要包含且只包含一个端点(其实右边也一样,但是

2013-07-12 12:07:37 1974 1

原创 后缀数组训练计划

暑期集训开始了= = 挖个坑 看能不能填完。。。 1.  hdu 1403/pku 2774       没什么好说的。。。把2个字符串拼起来,中间用个不会出现的字符隔开,注意选答案的时候要保证2个height是来自于不同的串      #include #include #include #include #include #include #include #inc

2013-07-09 00:26:19 614

原创 hdu 4570

当时现场赛看不懂。。。   最近几天偶然又看到这题了。。。边查字典边看发现就是一道水题。。。 dp[i] 表示从第i个level往后扩展所需要的最少table数,然后转移是dp[i] = min(dp[i],dp[j]+s[i]*2^(j-i));   j = i+1,i+2,i+3.....,i+20 #include #include #include using nam

2013-06-11 23:20:40 1381

原创 hdu 4552

ac自动机模版题 #include #include #include #include using namespace std; #define LETTER 26 #define MAXNODE 500005 char key[51],s[100001]; int n,cnt = 0,root; struct node{ int count; int

2013-05-18 23:11:49 609

原创 hdu 4549 M斐波那契数列

f(n)表示斐波那契数列的第n项 F(n) = a^f(n-1)*b^f(n)  这个推一下就知道了 然后f(n)可以用矩阵快速幂求 1 1                         f(n+1)    f(n) 1 0  的n次幂   =   f(n)         f(n-1)   就行了(至于为什么有这个自己度娘把。。)  但关键点在于f(n)可能很大 a^f(n-

2013-05-18 20:40:34 483

原创 hdu 4546

思路是优先队列 先排序, 然后Item类记录sum是当前难度的和,next是下一个要取的题目 初始化推入0,0 然后循环m次,每次取出sum+a[next],然后再推入2个,要么取next,要么不取这个,去取它的下一个 具体的看代码 #include #include #include #include #include #include #include #

2013-05-17 23:00:55 693

原创 hdu 4533

思路就是把被子拆成4个点,如果某个点(x,y)在(0,0)-(t,t)内的话,如果这个点是左下角或者右上角 面积就+=(t-x)*(t-y),反之面积-=(t-x)*(t-y);(画个图就知道了)而(t-x)*(t-y) = t*t-(x+y)*t+x*y所以,需要维护3个系数1,-(x+y),x*y;在代码中体现 #include #include #include #include

2013-03-31 01:03:29 676

原创 hdu 4517

#include #include #include using namespace std; char map[2002][2002]; int cnt[2002][2002]; //我的map下标从1,1开始 //cnt保存从左上角(0,0)到(i,j) 的*的个数 int n,m; int main(void){ // freopen("","r",stdin); whi

2013-03-24 10:13:30 548

原创 百度之星3.23 第一题

直接二分答案 然后判断是否符合要求  复杂度n*(log(n*1000)) #include #include #include #include using namespace std; int ti[10001]; int n,k; int main(void){ // freopen("","r",stdin); while(scanf("%d %d",&n,

2013-03-23 23:10:30 455

原创 dp专题练习

开学了~ 开始专题训练 就从dp开始吧  这篇日志会一直更新的 多重背包 poj 1014/hdu 1059 Dividing  http://blog.csdn.net/xing89qs/article/details/8618166

2013-02-27 16:04:37 283

原创 poj 1014 Dividing

多重背包即可 设dp[j]  表示是否可能分出价值为j的石头 最后判断dp[total/2]是否为真即可 贴代码#include #include #include using namespace std; int num[7]; bool dp[120001]; int main(void){ //freopen("","r",stdin); int t = 1;

2013-02-27 16:04:07 287

原创 TC SRM 571 div2

弱菜还在努力冲向div1中T_T,今天研究了好久1000pt 终于PASS SYSTEM TEST了。。。 过来写写解题报告 250pt 直接统计字符o的个数就好了 500pt 昨晚做的时候发现n最大只有1000于是直接暴力全部加进去,再排序水过。。。 今天研究了一下  优化了点 前k位必定是1 - k,   10 - 10+k,  100 - 100+k, 1000 - 100

2013-02-20 19:11:50 361

原创 hdu 2588

http://acm.hdu.edu.cn/showproblem.php?pid=2588 又一道欧拉函数题,题目要求小于等于n且与n的最大公约数大于等于m的所有数的个数 欧拉函数只能求出小于n且与n互质的所有数的个数,但是无法求出最大公约数是否大于m 但是 我们可以这样想 设a为大于等于m的n的一个约数,那么euler(n/a)表示的就是所有小于a与a互质的数的个数,设任一个数为

2013-02-11 14:07:25 783

原创 hdu 3501

题目要求小于n且不与n互质的所有数的和,很明显的欧拉函数 但问题是欧拉函数只能求出满足小于n且与n互质的数个数 我们可以这样看 设 a1,a2,a3,...,ak(k = euler(n))为所有满足小于n且与n互质的互不相同的数 那么 gcd(n,ai) = 1 则gcd(n,n-ai) = 1 那么n-a1,n-a2,n-a3...n-ak也是所有满足小于n且与n互质的数(唯一性很容易

2013-02-11 00:58:43 406

原创 ZOJ 3665

发份AC代码 仅供参考 运行时间390MS  不是最高的 看到有大神20ms 只能膜拜T_T  其实实质是等比数列的和固定 然后求公比k和项数r的所有情况啦 #include  #include  #include  using namespace std; int main(void) {     long long int n,r,k,min,sqr

2013-02-04 00:46:54 343

原创 HDU 3463

题目就不废话了 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3463 首先我们肯定都能想到去打表 然后我们从3-20000打出2261个素数  对于偶数而言 O(2261*2261)的枚举还是可以接受的 但是对于奇数而言O(2261*2261*2261)就显然要超时了 所以我们换种思路 因为偶数由2个素数构成 而奇

2013-02-04 00:45:03 440

原创 HDU 2196 树形dp

首先不得不说这题真的很不错 花了我一整天的时间来想= = 题目要求大概就是给你一棵树,求每一个节点到达的其他点所经过边的权值的最大值 开始还想用FLOYD 但是看到10000个结点= =顿时打消了念头 后来想到应该树形dp  对于一个结点,他能取得的最大值有2种可能,1是从他的子树走,2是从父节点走 所以 用far数组表示一个节点从他的子树走所能到达

2013-02-04 00:43:56 335

原创 哥的百度空间都搜不到啊=。=还是来这里写解题报告吧

RT不过还是贴贴地址 http://hi.baidu.com/_xing89qs

2013-02-04 00:43:01 290

原创 hdu 2389

这题明显的二分匹配 第一次用匈牙利算法居然TLE。。。。 然后改用HK A了 156ms~ 图用的邻接表存的,没用vector,可能快点吧。。 #include #include #include #include using namespace std; int n,m,head[3001],speed[3001],next[9000001],e[9000

2013-02-04 00:36:49 611

原创 Java自己做按钮~

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; //需要准备3张图

2012-03-24 15:28:37 652

空空如也

空空如也

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

TA关注的人

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