
练习赛
煦--晨
菜鸟起飞
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Be the Winner
博弈题如果知道其中的原理,结论很容ac#include"stdio.h"#include"string.h"int a[60000];int main(){ int num1,num2,m,ans,i; while(scanf("%d",&m)!=EOF) { num1=0;//计算充裕堆数《大于1》 num2=0;//计算原创 2013-10-30 21:53:27 · 1055 阅读 · 0 评论 -
hdu 1174 爆头(计算几何)
本题主要是头这个球展开的,首先要找到这个头心的高的z坐标,z=z+h-r;B到直线AC的距离就是|AB叉乘AC|/|AC|向量a=(a,b,c)向量b=(d,e,f)则,叉积=(bf-ce,-(af-cd),ae-bd) 本题,警察的坐标位置用A表示,歹徒用B表示,C’是方向向量,C是与A是直线方程上的点,则向量坐标满足AC=C’,所以歹徒到直线的距离是AB原创 2013-11-14 11:25:21 · 575 阅读 · 0 评论 -
poj 2407
欧拉函数纯模板题 #include"stdio.h"#include"math.h"int fun(int k){ int sum=k,i; for(i=2;i { if(k%i==0) { sum=sum/i*(i-1); while(k%i==0) k=k/i; } } if(k>=2) sum=sum/原创 2013-11-11 21:51:27 · 522 阅读 · 0 评论 -
poj 1975 Median Weight Bead
传递闭包的题目;题意:有N个珠子,N为奇数(an odd number),给出一些信息如a b表示a比b重 用到的是floyd求传递闭包,找出不可能是中间值(按重量从大到小排列) 的个数,可通过计算他的入度或出度大于n/2即可; #include"stdio.h"#include"string.h"int dp[100][10原创 2013-11-13 23:13:32 · 766 阅读 · 0 评论 -
hdu 1787 GCD Again
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。 φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)原创 2013-11-11 19:46:08 · 476 阅读 · 0 评论 -
hdu 1711 (kmp算法)
#include"stdio.h"#include"string.h"int a[1000006],b[1000006];int m,n,next[1000006];void fun(){ int i=0,j=-1; next[0]=-1; while(i { if(j==-1||b[i]==b[j])原创 2013-11-08 16:59:35 · 413 阅读 · 0 评论 -
zoj 3710 Friends
这题意思是有n个人,其中有m对朋友关系,其中不认识的两个人要成为朋友的条件是他们有至少k个共同的朋友,问最后能有多少对新朋友。这题可以用图论解决,使用矩阵储存两个人之间的关系(1表示朋友关系,0表示不认识),然后遍历整个矩阵,寻找不认识的人的共同朋友,并判断他们是否能成为新朋友,若能,则关系改为1,再重新遍历矩阵。例如第一组样例可表示为;| 0 1 2 3-|-------原创 2013-11-21 12:17:09 · 752 阅读 · 0 评论 -
poj 2236Wireless Network (并查集的应用)
题目的意思就是现在有n台电脑,然后告诉你这些电脑的坐标,并且当两台电脑的距离小于或者等于这个给定的d时,这两台电脑视为是连通的,现在的问题就是输入S a b然后问你a和b是不是连通的.这个题目的大体的做法和通常的并查集是一样的,查找祖先,合并节点.但是在合并的时候首先要求是这个电脑必须被修复过,也就是下面的visited数组对应的值是1,并且这个距离是小于或者等于d.判断的时候只需原创 2013-11-21 11:14:41 · 676 阅读 · 0 评论 -
hdu 4639 Hehe
此题是找规律题,就是看有几个相连的hehe,对于一个连续的hehe串,他的意思有几个,这满足菲波数列。。一个he 一种,两个he 两种,三个he三种。。这样就可以把一个连续的hehe序列给解决了,但是在字符串可能有多个hehe串,这是就要用到乘法了。。 #include"stdio.h"#include"string.h"int p[20000],b[20000];原创 2013-11-04 18:26:25 · 602 阅读 · 0 评论 -
poj 2253 Frogger (floyd算法)
青蛙约会主要弄懂意思,第一只青蛙要找第二只约会。但由于跳跃的范围有限,所以他要借助其他的石头来到大目的地。从第一块石头到达第二块石头会有很多路径,在每一条能到达目的地的路径中,在这条路中从会有一个(两点)最大的距离,这个距离可以在这条路径任意两点都可以跳过。。而题中要求的就是在这些可行路径中所有最大中最小的一个。 #include"stdio.h"#include"string原创 2013-11-04 16:39:14 · 715 阅读 · 0 评论 -
hdu 2845 Beans (最大不连续子序列的和)
此题的整体思路是先求出每一行最大不连续的子序列之和的最大值,把这个值存储起来。。这样就得到了m个值,这m个值正好一列,再求出它的最大不连续子序列之和既是要求的值。 最大不连续子序列之和的求法是:利用动态规划的状态转移方程,a[i]=max(a[i]+a[i-2],a[i-1]),a[0]=0;i从2开始,这样a[n]就是这一行所要求的值了。 #include"stdio.h"#原创 2013-11-04 19:53:26 · 1204 阅读 · 0 评论 -
hdu(4996) D-City 并查集
/*本题并不是简简单单地考察并查集,他考察的是你是否理解并查集的原理,是怎样得到的;独立的个数;肯定越来越多,所以我们从最下面开始判断,要明白,刚开始 肯定要k--;但是对于都没有联系的点来说,此时独立的个数肯定为n个(最后输出的),第一个点可能减为了零,但全连同时为一,所以第一个点就不输出了。。*/ #include"stdio.h"#include"str原创 2013-08-27 15:20:00 · 827 阅读 · 0 评论 -
hdu(1025)(最大单调递增序列)
题意很明确,就是求最大递增序列元素的个数,由于数很大一般的方法会超时;这时用二分查找或线段树的方法都可以,此时主要针对二分查找说明;此方法要用到两个数组,数组a的下标i是记录第几个元素(i=1,2,。。。n),a的值是此位置的数值。把输入的数都存进了数组a中。。二分查找,查的是数组b,找出数组b中第一个大于a[i]的值的位置k,此时改变数组b在k位置的值,b[k]=a[i];这样的原创 2013-10-31 14:47:22 · 740 阅读 · 0 评论 -
349B - Color the Fence (贪心)
本题的意思是:用油漆写数字,数字的范围是(1--9)每次都输入9个数,每个位上的数代表写这个数所需要的油漆量。先找到写一个数所消耗最小的油漆量。则n=m/min;表示所能写的最大位数;然后从最大的位数9开始查找,要想写下此值要满足两个条件;一是:m大于等于a[j];二是:不影响能写的最大位数,一定的保证最大位数不变; #include"stdio.h"#原创 2013-10-31 15:32:42 · 920 阅读 · 0 评论 -
Outlets
最短路径问题,与一般题的区别是,有两个点必须用一条直线直接连接,此时就把这两点的距离算出来,并建立关系,pre【k】=h;其他的用最短路径就很好解决了,注意的是建立两个数组,防止发生覆盖; #include"stdio.h"#include"algorithm"#include"math.h"using namespace std;int pre[20000];原创 2013-10-31 16:49:06 · 539 阅读 · 0 评论 -
Alice and Bob
http://codeforces.com/problemset/problem/346/A #include"stdio.h"int fun(int n,int m){ int r=1,t; if(n { t=n; n=m; m=t; } while(r>0) { r=n%m; n=m; m=r; } re原创 2013-10-27 20:28:38 · 696 阅读 · 0 评论 -
hdu 2181 哈密顿绕行世界问题 (深搜)
回朔搜索;#include"stdio.h"#include"string.h"int map[1000][10];int mark[1000],sum[1000],m,t;void bfs(int x,int s){int i;if(s==20&&(map[x][1]==m||map[x][2]==m||map[x][3]==m)){printf("%d:原创 2013-11-15 13:30:30 · 524 阅读 · 0 评论