自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 2012 Multi-University Training Contest 6-1009 hdu4358 Boring counting

http://acm.hdu.edu.cn/showproblem.php?pid=4366树形启发式合并,利用map启发式合并,不管父子关系如何,每次将元素个数少的节点并入元素个数多的。用id[i]表示节点i合并后的结果存在节点id[i]。#include #include #include #include #include #include #include

2012-08-19 17:13:07 369

原创 2012 Multi-University Training Contest 7-1006 hdu4365 Palindrome graph

简单的组合计数问题坐标为(i,j)的数通过旋转能得到  (j,n-i-1),(n-i-1z),(n-j-1),(n-j-1,i)通过旋转再家翻转后(i,j)能得到  (i,j),(n-i-1,j),(i,n-j-1),(n-i-1,n-j-1),(j,i),(j,n-i-1),(n-j-1,i),(n-j-1,n-i-1)通过翻转我们知道需要染色的地方只有矩阵的左上角(其他地方的颜色只

2012-08-15 19:08:07 320

原创 2012 Multi-University Training Contest 7-1005 hdu4364 Matrix operation

大水题,只是题目描述有点儿坑爹,需要枚举……不幸的是WA了一次才A,幸运的是只WA了一次……#include #include #include using namespace std;int main(){ char ch; int k,tmp,val[300],recVal[30],num[4][4],res[4][4]; int rec[

2012-08-15 18:52:37 393

原创 2012 Multi-University Training Contest 7-1003 hdu4362 Dragon Ball

题意: Sean有一张藏宝图,藏宝图会告诉他在接下来的m个时期内会出现n个龙珠(在不同的位置),从位置x移动到位置y需要话费|x-y|的能量,拿龙珠也需要一定的能量,每个时期他能切只能拿一个龙珠,问他拿完所有的龙珠需要的最小的能量是多少。输入:m,n,x  代表有m个时期,每个时期都出现n个龙珠,以及Sean的初始位置x然后两个m*n的矩阵,第一个矩阵表示在第i个时期第j个龙珠的位

2012-08-15 18:49:49 348

原创 2012 Multi-University Training Contest 7-1001 hdu4360 As long as Binbin loves Sangsang

每条边除了有边权以外,还有一个字母标记。标记可以是“LOVE”里面任意字符。每个点,要拆成四个点,分别代表到达该点的标记为L,O,V,E的最短路。第一步就是求最短路,直接Dijkstra就可以了。trick在于,至少要找到一个LOVE串,在只有一个节点的时候,有几条自环,至少必须走LOVE四条自环。此时,必须另外加一个节点表示开始节点。还有一个trick就是距离可能

2012-08-15 18:42:42 877

原创 POJ 2823 Sliding Window

这是一道单调队列的题目,做这道题目也是为了理解单调队列到底是什么东西,下面是摘自百度百科的一段说明,说的明不明白呢,只可意会不可言传~单调队列查询为O(1)。进队出队稍微复杂点:进队时,将进队的元素为e,从队尾往前扫描,直到找到一个不大于e的元素d,将e放在d之后,舍弃e之后的所有元素;如果没有找到这样一个d,则将e放在队头(此时队列里只有这一个元素)。出队

2012-08-13 21:46:25 282

原创 2011 Asia Beijing Regional Online Contest-1005 hdu4044 GeoDefense-tjuqxy

昨天一个下午边看视频边写的代码,今天又一个下午来调试,本来对这份代码很没信心的,觉得那些想法有问题,今天跟同学又讨论了一下午找代码里的Bug,把程序认认真真读了一遍之前写的那些想法都明白了:树形DP,分组背包空间优化,建树,DP状态转移过程中的“滚动数组”。 觉得对DP有了更深入的理解吧,代码发上来纪念下。最后膜拜下政哥……#include #include #

2012-08-13 20:18:33 299

原创 2011 Asia Beijing Regional Online Contest-1006 hdu4045 Machine scheduling

题意:给4个数n,r,k,m,求从n中选r个数(至少间隔k )并将这r个数分成至多m组一共有多少种情况。输入为5 2 3 2时Sample input means you can choose 1 and 4,1 and 5,2 and 5 in the same day.And you can make the machines in the same group or in th

2012-08-13 15:06:11 367

原创 2011 Asia Beijing Regional Online Contest-1004 hdu4043 FXTZ II

很简单的数学题(其实主要是考高精度),枚举第一个打出的是什么雪球就可以找出递推式。假设一共有n个雪球,如果第一次打出的是最小的,并且打在Sanae身上,那么赢的概率就是再打n-1个雪球赢的概率(若打在Cirno身上,他直接输),如果第一次打的是第k小的球,则赢的概率就应是再打n-k个球赢的概率(k前的球不会影响结果)根据递推关系可得递推式为: dp[n] = 1.0/(2*n)*(dp[n

2012-08-13 14:33:47 407

原创 POJ1811 Prime Test

经典的数学题题意:判断一个数是不是素数,如果是输出Prime,否则输出这个数的质因数中最小的一个题解:用Miller_rabbin算法判断这个数是不是素数,如果不是就用Pollard_rho算法进行因式分解以下为代码,但是在poj上不知道为什么如果我用G++交会报runtime error而用C++交就能过,求大牛指教#include #include #include

2012-08-13 13:03:58 356

原创 hdu 2833 WuKong

Dijkstra+记忆化搜索首先用Dijkstra分别找到悟空和唐僧从起到终点的最短路径最短路径的性质d[i] + edge[i][j] == d[j] 其中j为最短路径上的点,则i也为最短路径上的点。由这个性质我们可以从终点逆向找到所有的最短路径上的点,做一遍记忆化搜索就可以得到结果。#include #include #include using nam

2012-08-12 13:43:16 454

原创 TOJ 3849 Sentence Segmentation

这是一道AC自动机与dp结合的题目。每个单词有一个权值,把一个长的单词分解成所给的几个单词,并要求尽量使所得到的权值最大,如果不能分解成所给的几个单词输出-1。用dp[i] 表示到i个位置以前的单词分解所能得到的最大权值。那么当我们用ac自动机匹配到一个单词时就要更新dp[pts+1] = max(dp[pts+1],dp[pts+1 - tmp->cnt] + tmp->value)

2012-08-12 12:50:36 351

原创 2011 Asia Beijing Regional Online Contest-1010 hdu4049 Tourism Planning

这是一道状态压缩DP题目用dp[i][1024] 可以记下经过第i个城市的所有状态在状态转移的时候,dp[i-1][j]中的j必须在 dp[i][k] 的k为1的对应位上也为1例如,如果k为10110,那么j可以使10110或10111或11110或11111或10110,我们可以提前处理出所有能转移到k的状态转移过程就非常简单了做这道题的时候再位运算的处理上wrong ans

2012-08-11 20:58:23 290

原创 2011 Asia Beijing Regional Online Contest-1002 hdu4041 Eliminate Witches!

这是一道数据结构的水题,考查最简单的树,处理代码如下#include #include #include using namespace std;const int M = 50005;const int N = 1000005;struct Node{ char name[12]; vector ve; int id; v

2012-08-11 20:49:21 364

原创 2011 Asia Beijing Regional Online Contest-1007 hdu4046 Panda

题目有两个操作:1. 查询一段区间内的wbw的个数2. 修改某一个位置的字母我们用树状数组记录sum[i] 表示以i之前出线的wbw的个数当查询a,b区间时sum[b] - sum[a+1]就是a,b间wbw的个数当更新某个点时,只需判定改变这个字母所带来的wbw个数的变化,并更新到树状数组中即可#include #include #include #incl

2012-08-11 20:45:17 330

原创 2011 Asia Beijing Regional Online Contest-1005 hdu4044 GeoDefense

http://acm.hdu.edu.cn/showproblem.php?pid=4044题意:有一棵树,各节点上可以建塔防,塔防有自己的攻击力和价格。初始时给m金钱,每建一座需花费一定价钱,同时每个结点至多建一座。有一个怪物,从根节点1走向叶子节点,路上会被塔防攻击掉血。求一个最大的怪物血量,使得不管它走向哪个叶子节点,都可以被用至多m的金钱建的塔防消灭。思路:在怪物由根节点走向叶

2012-08-11 19:42:50 488

原创 hdu2222 Keywords Search

这个题是AC自动机的模板题,尽情的享受吧愿有一天能有人写出自动AC机,让我们无尽的AC吧#include #include #include #include using namespace std;const int M = 500010;const int N = 1000010;const int MAX_N = 26;struct TrieNode{

2012-08-10 20:28:44 296

原创 2012 Multi-University Training Contest 5-1006 hdu4344 Mark the Rope

该题是Pollard_rho分解质因数的模板题1、所求长度是N的因子(且大于1小于N),集合中的元素得两两互质 2、为了尽可能多的选出,每个L的质因子应当只包含N的一个质因子,L是一个质因子的整数次,所以K的值就是N中不同质因子的个数3、要想和最大,那么使得每个L最大,只要使得质因子的指数最大即可如果N本身是质数的话,直接输出1 1用pollard_rho分

2012-08-10 19:42:21 319

原创 hdu2138 How many prime numbers(Miller_Rabbin随机素数测试)

给定几个数,问其中素数的个数。由于数量很大,打表肯定过不了,所以必须用Miller_Rabbin随机素数测试的方法,下面是我的C++ Miller_Rabbin模板#include #include #include using namespace std;typedef long long ll;ll exp_mod(ll a,ll b,ll mod){ ll

2012-08-10 16:47:33 324

原创 2012 Multi-University Training Contest 6-1010 hdu4359 Easy Tree DP?

这场比赛中的简单dp题。要求左子树所有值的和小于右子树所有值的和。由于每个结点中的值都是2的几次方,那么就有这样一个很好的性质2^0+2^1+...+2^(n-1) 那么如果树中的左右子都有的话,那么只要最大的在右子树中就能保证右子树的总和大于左子树的总和用dp[i][j] 表示i个结点形成深度为j 的树有多少种 comb[i][j] 表示i个结点形成深度小于j的树有多少种方式,c[i

2012-08-10 12:27:48 397

原创 2012 Multi-University Training Contest 6-1006 hdu4355 Party All the Time

这个题就是求一个点p,使得(xp - xi ) ^ 3 (i = 1,2,..n)的和最小,通过大家总结这是一个单峰函数(具体是为什么我也不知道),通过三分法可以得到正解。以下是一个很好的三分法的模板~~#include #include #include #include using namespace std;typedef double D;const D

2012-08-10 12:15:28 292

原创 2012 Multi-University Training Contest 6-1001 hdu4350 Card

http://acm.hdu.edu.cn/showproblem.php?pid=4350优化的矩阵快速幂#include #include #include #include #include #include #include #include #include #include using namespace std;#define MAXN 52c

2012-08-09 20:17:20 334

原创 2012 Multi-University Training Contest 4-1001 hdu4331 Image Recognition

http://acm.hdu.edu.cn/showproblem.php?pid=4331O(n^3),加了特判#include #include #include #include #include #include #define N 1005using namespace std;int n,a[N][N],vert[N][N],hori[N][N],r[N][N]

2012-08-09 10:48:59 384

原创 2012 Multi-University Training Contest 4-1007 hdu4337 King Arthur's Knights

http://acm.hdu.edu.cn/showproblem.php?pid=4337求哈密尔顿回路的一个可行解#include #include #include #include #include #include using namespace std;#define N 155int c[N][N],x[N],flag,n,m;void output(

2012-08-09 10:45:59 558

原创 toj3530-hdu3439 Sequence

#include #include #include #include typedef long long ll;const int M = 100005; //所取模的上界const int N = 405;int p[N],e[N];int len;int cover[N];int pri[N];int top;int f[M];int finv[M];

2012-08-08 21:43:43 616

原创 2011 Asia Fuzhou Regional Contest-1003 hdu4123 Bob’s Race

同样北大的题,题目很简单,想法很简单也很容易实现,但却要优化好,否则很容易超时。题目描述:Bob要办一场赛跑比赛,有N个房子互相相连,任意两个房子间有且仅有一天路(树形结构),有N个人分别从这N个房子出发,要求每个人都跑到尽量远的房子,但每个人只能经过每条路一次,不同人之间跑的路程会有差距,Bob想知道最多有多少个连续的人他们中最远的路程减最小的路程不大于P。最多有50000个点,500次询问

2012-08-08 16:16:23 772

原创 2011 Asia Fuzhou Regional Contest-1005 hdu4125 Moles

题目描述:    给N个数(标号为1-N)按顺序建一棵二叉排序树,然后按数字从小到大遍历这棵树,每走过一个标号为奇数的节点记录1,偶数记录0,访问完所有节点回到地面上之后便能得到一串0-1序列,之后给另外一个0-1串s,问遍历得到的串包含多少个s(可以重叠) n不大于600000北大出的题还是很好的,题目读起来很简单,不是什么模板题不是超难的论文题也不是特简单的水题。解题思路很

2012-08-08 15:53:35 720

原创 hdu3037 大组合数取模(Lucas定理)

题目相当于求n个数的和不超过m的方案数。如果和恰好等于m,那么就等价于方程x1+x2+...+xn = m的解的个数,利用插板法可以得到方案数为:(m+1)*(m+2)...(m+n-1)  = C(m+n-1,n-1) = C(m+n-1,m)现在就需要求不大于m的,相当于对i = 0,1...,m对C(n+i-1,i)求和,根据公式C(n,k) = C(n-1,k)+C(n-1,k

2012-08-08 14:21:56 2900 2

原创 2011 Asia Fuzhou Regional Contest-1002 hdu4122

用RMQ选取指定区间内的最小值#include #include #include #include #include #include #include #include using namespace std;typedef long long ll;ll num[] = {0,31,59,90,120,151,181,212,243,273,304,334,36

2012-08-08 10:57:19 563

原创 2012 Multi-University Training Contest 5-1001 hdu4340(Virus原创)

题目大意: Ant和Bob要占领一个国家,这个国家有N个相互连接的城市(编号为1-N),任意两个城市间有且只有一条线路,占领城市需要花费一定的时间。占领顺序任意,但是若Ant占领了一个城市,则他占领与这个城市相连的城市时需要花费的时间会减半,Bob也是一样。现在给出Ant和Bob占领每个城市需要的时间以及城市之间的同路,求Ant和Bob占领整个国家需要的时间。输入:第一行 N代表有

2012-08-07 19:52:47 424

原创 2012 Multi-University Training Contest 5-1011 hdu4349

题目大意:给一个数N(10^8),求 C(n,0),C(n,1),C(n,2)...C(n,n).中有多少个奇数。解体思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写成二进制的形式观察,比如 n=1001101,m是从000000到1001101的枚举,我们知道在该定理中C(0,1)=0,因此如果n=1001101的0对应位置的

2012-08-07 19:34:56 271

原创 2012 Multi-University Training Contest 5-1007 hdu4345

题目描述:有N个元素的一个集合经过K次置换能变回原来的集合,求k的个数。解题思路:k为置换群中各独立置换群长度的最小公倍数,k的个数即N以内的总和小于10的质数的乘积(包括1)比如N=10时,k可为:1,2,3,2*2,5,2*3,7,2*2*2,3*3,2*5,2*2*3,2*7,3*5,2*2*5,3*7,2*3*5,共16个解法:DP      状态: dp[

2012-08-07 19:33:36 335

原创 2012 Multi-University Training Contest 5-1004 hdu4342

题目描述:求出第i个非平方数M,以及小于等于M的所有数的开方之和                                                                   纯数学题,把公式推出来就OK了#include #include #include using namespace std;int main(

2012-08-07 19:31:04 306

原创 2011 Asia Fuzhou Regional Contest-1001 hdu4121 Xiangqi

http://acm.hdu.edu.cn/showproblem.php?pid=4121模拟#include #include #include #include #include #include #include using namespace std;const int dx[5]={0,0,0,1,-1};const int dy[5]={0,1,-1,0

2012-08-07 19:04:51 341

原创 2012 Multi-University Training Contest 5-1001 hdu4340

http://acm.hdu.edu.cn/showproblem.php?pid=4340树形dp我们可以知道,如果某一个连通的点集染的是同一种颜色,则这个集合中只要而且必须有一个点取完整的费用,其他的点都只需要对应费用的一半。状态:dp[i][j][k] (0 通的点集有j个点选取了完整的费用(j只需为0或1)。若root为根节点,则最后需要的结果为: min(dp[roo

2012-08-07 18:50:28 512

原创 poj2155 二维线段树

http://poj.org/problem?id=2155题目大意:给定初始N*N矩阵,所有数都是0,然后有‘C’操作:对左上角(x1,y1)到右下角(x2,y2)的矩阵中所有数取非,即0变1,或1变0;还有‘Q’操作:查询点(x,y)的值并输出。思路:构造一个线段树,每个结点还是线段树,外围线段树表示x方向,子线段树表示y方向。查询时对结点(x,y)所在的所有矩阵的值累计,这是因为在更

2012-08-07 11:54:02 375

原创 2011 Asia Fuzhou Regional Contest hdu4121 Xiangqi

模拟#include <iostream>#include <cstdio>#include <memory.h>#include <algorithm>#include <cmath>#include <string>#include <climits>using namespac

2012-08-05 13:42:15 79

空空如也

空空如也

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

TA关注的人

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