- 博客(429)
- 资源 (16)
- 问答 (2)
- 收藏
- 关注
原创 HDOJ 1316 How Many Fibs?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316#include#include#includeusing namespace std;const int Max=2001;char f[Max][Max]={"1","1","2"};char tmp[Max],str1[Max],str2[Max];void set(cha
2015-12-18 18:14:01 511
原创 HDOJ 1316 2^x mod n = 1
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395题目注意一下n小于等于1的处理……#include#includeusing namespace std;//蒙哥马利快速幂int Montgomery(__int64 a,int b,int c){ __int64 ans=1; while(b){ i
2015-12-18 18:13:59 479
原创 快速幂取模运算
1.模取运算的性质(1)(a+b)%c =((a%c)+(b%c))%c(2)(a*b)%c = ((a%c)*b)%c2.快速幂乘计算a^b(1)a,b都为正数,将b二进制化(2)时间复杂度为logb,乘法次数不是最少的__int64 power = 1;while(b > 0){ if(b&1) power *= a; a*= a; b>
2015-12-18 18:13:56 1209
原创 POJ 2406 Power St…
#include#includeconst int N = 1000000+10;char str[N];int next[N];int len;void GetNext1(char str[N],int next[N])//寻找模式串的粗略next{ intl=strlen(str); next[0]=-1; inti=0,j=-1; while
2015-12-18 18:13:53 466
原创 【转载】C语言中scanf格式化输入函…
scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。[编辑本段]scanf函数的一般形式 scanf(格式控制,地址表列) int scanf(char *format[,argume
2015-12-18 18:13:50 600
原创 HDOJ 1242 Rescue
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242代码:#include#include#include#include#includeusingnamespace std;const intMAXN=200;const intINF=10000000;typedefstruct points{ int x,
2015-12-18 18:13:47 466
原创 HDOJ 4278 Faulty Odometer
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4278题目意思为:有一个里程表没有3,8这两个数字0,1,2,4,5,6,8,9这八个数字构成一个循环(一个八进制)但数字的顺序不一样,先将给定的数字转化为实际的数字(八进制),再将八进制转化为十进制代码:#include#includeusing namespace std;int main
2015-12-18 18:13:44 541
原创 POJ 2364 Balanced Lineup
转载:http://blog.csdn.net/niushuai666/article/details/7401403题目链接:http://poj.org/problem?id=3264题目大意:一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。解题思路:我是用RMQ写的。N为50000,Q为200000,如果我们暴力的话,需要50000*200000=1
2015-12-18 18:13:41 540
原创 转载用ST的RMQ算法
转载:http://blog.csdn.net/niushuai666/article/details/66246721. 概述RMQ(Range Minimum/MaximumQuery),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍
2015-12-18 18:13:39 376
原创 字典树
字典树,又称单词查找树,Trie树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。它有三个基本性质,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,每个节点的所有子节点
2015-12-18 18:13:36 478
原创 KMP字符串模式匹配详解
KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法一个普通匹配算法的函数:int Index_BF ( char S [ ], char T [], int pos ) {int i = pos, j = 0;whi
2015-12-18 18:13:34 676
原创 HDOJ 4341 Gold miner[条件背包]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4341题目解析:给定时间让你求出能获得到的最大价值,对于每一次显然,必须先拿走前面的金子才能拿后边的,所以排序处理共线情况。然后进行背包即可,,,,,,『将直线前面的视作一个背包,将前面和后面合在一起视作一个背包,然后就简化为01背包问题』题解报告代码:#include#include#
2015-12-18 18:13:31 504
原创 Lucas定理 && HODJ 4349
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349首先给出这个Lucas定理: A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) modp同余
2015-12-18 18:13:29 465
原创 HDOJ 4342 History repeat itse…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4342题解:题目要求第N个不是平方数的数,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,171^2 2^2 3^2 4^2假设有一个K为第N个数之前的那个平方数,有K^2(两边同时加
2015-12-18 18:13:26 467
原创 HDOJ 1597 find the nth digit
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1597#include #include using namespace std;ints[]={1,1,2,1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7, 1,2,3,4,5,6,7,8};int main(){
2015-12-18 18:13:23 477
原创 HDOJ 1262 寻找素数对
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1262#include #include int k[10000]={0};void prime(){ memset(k,0,sizeof(k)); inti,j; for(i=2;i { if(k[i]==0) {
2015-12-18 18:13:21 565
原创 swap函数
swap的宏定义:#include #define swap(x,y)\ //在宏定义中的反斜杠表示的是这一行没有写完在下一行接着写x=x+y;\y=x-y;\x=x-y;int main(){ intx=1111,y=2222; printf("\n%d\t%d",x,y); swap(x,y); printf("\n%d\t%d",x,y)
2015-12-18 18:13:18 2264
原创 威佐夫博弈、黄金分割、POJ 1067
题目链接:http://poj.org/problem?id=1067题解:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤bk,k=0,1,2,...,n) 表示两堆物品的数量并称其为局势,如果甲面对(0,0), 那么甲已经输了,这种局势我们称为奇异局势。前
2015-12-18 18:13:16 507
原创 如何写出很牛的代码,提高你的代码…
首先要使用C/C++的灵活性,然后要了解,写这些代码,是为了提高效率,而不是做show,好,现在就开始吧。No1:scanf(" ")这里一个空格表示跳一个字符,然后读取,可用于清空前面空格和回车,比如有下面一段程序:#include int main(){ char nTemp; while(true) { scanf(" %c",&nTemp); printf(
2015-12-18 18:13:13 577
转载 由poj 1067引发的——取石子游…
原文地址:1067引发的——取石子游戏【转自各类博弈】">由poj 1067引发的——取石子游戏【转自各类博弈】作者:雨昕上次做poj1067的取石子游戏,只用到了whthoff博弈,未涉及到取石子的异或方法,今天重新搜索,整理了一遍。搜罗各种资料,加上自己整理,终于成篇啦!……噼里啪啦 取石子问题有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取
2015-12-18 18:13:11 535
原创 POJ题目分类
POJ题目分类递推:杭电2050 2018 2046 2041 2042 2045 1465数据结构:字符串 北大 2121贪心: 北大 1065 杭电:1051 2037 1050 浙大:1076 175610251、排序1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201,2376, 2377, 2380, 131
2015-12-18 18:13:08 553
原创 HDOJ 1999 不可摸数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1999这道题打表就可以过,在讨论里说有些数据不对,可能是后台的程序有误,,,或者测试数据太弱了.....,所以不应管太多,直接上代码,#include int s[500000]={0},f[1001]={0};void inti(){ int i,j; for(i=
2015-12-18 18:13:06 557
原创 HDOJ 1240 Asteroids!
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1240题目解析:题目给了一个三维的空间坐标系,找一个点到另一个的最短的距离,这其实和二维的一样,只不过有些的小小的改动,我自己是按照广搜的,每一次搜完之后清空#include #include #include #include const int MAX=1000000;using nam
2015-12-18 18:13:03 467
原创 优先队列&&队列
优先队列用法转载:http://www.cppblog.com/shyli/archive/2007/04/06/21366.html在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的优先队列的第一种用法,也是最常用的用法:基本操作:empty() 如果队列为空返回真pop() 删除对顶元素push() 加入一个元素size() 返回优先队列中拥有的元素个数top
2015-12-18 18:13:01 481
原创 HDOJ 1994 利息计算
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1994题目给的不是太明白,但写出来改改就好,,,#include int main(){ int t; scanf("%d",&t); doubley,q,e,f,g,sum1,sum2; while(t--) { sum1=sum2=0.0
2015-12-18 18:12:58 635
原创 HDOJ 4337 King Arthur's Knigh…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4337题目感觉用深搜,#include #include #define MAX 200int n,m,step;int map[MAX][MAX];int visit[MAX];bool pass[MAX],flag;void dfs(int x,int step){ int
2015-12-18 18:12:56 454
原创 错排公式
转载:http://blog.163.com/seeker_forever/blog/static/163238938201042211595207/ 颜书先生《“装错信封问题”的数学模型与求解》一文(见《数学通报》 2000 年第 6 期p.35 ),给出了该经典问题的一个模型和求解公式:编号为 1 , 2 ,……, n 的 n个元素排成一列,若每个元素所处位置的序号都与它的编号不同,
2015-12-18 18:12:53 808
原创 HDOJ 4334 Trouble
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4334题解:如果我们有两个整数排序的列表A和B,我们可以很容易地找到在线性时间通过保持两个指针如果有一分之一和B在B,这样+ B =c(c给定)。 现在,对于这个问题,我们创建一个排序的列表s[0]和s[1](称之为M[0]),和一个排序的列表s[2]和s[3](称之为M[1])。我们可以做到
2015-12-18 18:12:51 402
原创 HDOJ 4325 Flowers
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4325题目自解:将开花时间和闭花时间进行排序,某时刻开花的数减去花谢的数就是正在盛开的花的数目,用二分法查找#include #include #include int a[100005],b[1000005];int see[100005][2];int n,m;int Find(int
2015-12-18 18:12:48 380
原创 HDOJ 1312 Red and Black
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1312水一样的深搜,,#include #define MAX 20int n,m,count;int dri[4][2]={{0,1},{0,-1},{1,0},{-1,0}};char map[MAX][MAX];void dfs(int x,int y){ count++;
2015-12-18 18:12:45 436
原创 HDOJ 1241 Oil Deposits
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1241简单的深搜题目,,,#include #define MAX 100+1int n,m;intdri[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,-1},{1,-1},{-1,1}};char map[MAX][MAX];void dfs(i
2015-12-18 18:12:43 442
原创 HDOJ 4104 Discount
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4104题目的意思是给以一串数字,让你求出这串数字相加不能组成的最想数字,但这个最小数字必须要比给出的的数字当中的最小的大,,,假设有a,b,c,d,e,f,g,h,i,j,k.....从第二个数子开始,假设此数字之前的所有数字之和(sum)比这个数字要小,则答案为此数字之前的所有数字之和加一(su
2015-12-18 18:12:40 483
原创 HDOJ 2717 Catch That Cow
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2717#include #include #include using namespace std;#define MAX 200100//因为输入的数n,k最大值为100000,//但有一个2*k位置要存储,所以要将N设置到两倍最大值。int farmer[MAX];/数组记录前进的步数i
2015-12-18 18:12:37 690
原创 HDOJ 1301 Jungle Roads
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1301很好写的prim吧,同样Kruskal也可以#include #include #include #define MAX 1000000int Edge[27][27];int lowcost[27];int n;void init(){ inti,k,num,x,y;
2015-12-18 18:12:35 511
原创 HDOJ 1162 Eddy's picture
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1162prime算法好些,但Kruskal也可以#include #include #include #define MAX 1000000double Edge[110][110];double as[110][2];double lowcost[110];int n;void ini
2015-12-18 18:12:32 638
原创 HDOJ 2048 神、上帝以及老天爷
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2048用错排,搞定!#include __int64 a[21];void inti(){ inti,j; for(i=1;i { a[i]=1; for( j=2;j a[i]*=j; }}int m
2015-12-18 18:12:30 546
原创 HDOJ 2047 阿牛的EOF牛肉串
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2047设n位字符串,最后一位是O的字符串的个数为a[n],最后一位不是O的字符串的个数是b[n],总字符串个数为x[n],则有f[n]=a[n]+b[n];a[n]=b[n-1];b[n]=2*f[n-1];====>f[n]=2*f[n-1]+2*f[n-2] #includeint
2015-12-18 18:12:27 748
原创 HDOJ 2046 骨牌铺方格
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2046推导公式:f(n)=f(n-2)+f(n-1)与2046题很相似,因为假设前(n-2)个排好,剩下的就只有两种排法如果前(n-1)个排好,那么最后一个就只有一种排法但(n-2)的和(n-1)的一种是相同的,所以要去掉一种#includeint main (){ inti,a;
2015-12-18 18:12:25 525
原创 HDOJ 2045 不容易系列之(3)—— L…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2045推导公式:f(n)=2*f(n-2)+f(n-1)因为假设前(n-2)个排好,剩下的就只有两种排法如果前(n-1)个排好,那么最后一个就只有一种排法数据可能很大要使用long long int 或(__int64)#includeint main (){ inti,a;
2015-12-18 18:12:22 461
原创 HDOJ 2044 一只小蜜蜂...
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2044题目告诉的从哪里走到哪里其实不重要,而是看你走了多少,__int64,菲波拉数列#include #include int main(){ intt,a,b; __int64p[51]={0,1,2,3}; scanf("%d",&t); while(t
2015-12-18 18:12:19 524
tonic-refs_heads_master.tar.gz
2019-08-09
微信webview唤起外部客户端接入说明2018版
2019-02-21
gradle_2.0.0-instant-run源码
2018-05-10
BinaryTree二叉树操作相关代码
2017-10-19
IntelliJ IDEA入门图文教程整理(全部)
2016-10-17
动态绘制图片
2014-07-23
NotificationDemo
2014-07-16
FTP套接字编程
2014-04-23
Windows平台简单socket编程
2014-03-27
内排序算法比较
2013-03-14
activity绑定Service成功时ServiceConnection的回调问题?
2017-06-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人