- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 0805CF152解题报告
A题:Marks水题,直接上代码:#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int main(){ int n , m
2013-08-05 21:49:49 565
原创 字典树模板
typedef struct Trie{ int v ; Trie *next[26] ;};Trie root ;void createTrie(char *str){ int l = strlen(str) ; Trie *p = &root , *q ; for(int i = 0 ; i l ; i ++) { i
2013-08-03 11:27:27 425
原创 HDU1251:统计难题
这道题是很简单的字典树的题,很基础,直接套模板就行。字典树的讲解见:http://blog.csdn.net/u010142538/article/details/9729601code:#include #include #include #include #include #include #include #include #include #include
2013-08-03 11:25:36 497
转载 字典树
Trie,又称字典树,前缀树(prefix tree),是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。查找、插入复杂度为O(n),n为字符串长度。 它有3个基本性质:1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。3. 每个节点的所有子节点
2013-08-03 09:07:52 547
原创 2013年多校联合第四场(2013 Multi-University Training Contest 4)解题报告
1001(HDU4632):Palindrome subsequence这道题是找到一个字符串中不同的回文数量,用区间DP来做,dp[i][j]表示区间[ i , j ]的回文数量,然后递归。思路:按照长度i从1—n循环递归求出结果:利用变量j从字符串的头开始扫描。如果s[ j ] != s[ j + i ],dp[ j ][ j + i ] = dp[ j + 1 ][ j + i
2013-08-02 20:33:11 906
原创 2013年HDU多校联合第三场解题报告
1007:The Unsolvable Problem这道题很简单,是签到题。题意就是:给定一个数n,有两个数a,b。使a+b=n。求所有(a,b)组合中a和b最小公倍数的最大值。思路:1.如果n是奇数的话,那么结果为n/2*(n/2+1);2.如果n为偶数:(1).n/2为偶数:结果为(n/2-1)*(n/2+1);(2).n/2为奇数:结果为(n/2-2)*(n/2+2);code
2013-07-31 20:15:07 747
转载 树状数组
昨天学了一下树状数组,随笔都写了一大半,结果一个不小心就把他给删了,哎。。。。。。今天就当是复习吧!再写一次。如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn
2013-07-30 19:19:08 403
原创 HDU1003: Max Sum
这道题属于求最大字段和的问题,可以用DP做,也可以枚举,但是枚举时间复杂度为O(n^3)。求解最大字段和详细请看http://blog.csdn.net/u010142538/article/details/9624343code:#include #include #include #include #include #include #include #in
2013-07-30 10:24:18 479
转载 求解最大字段和的几种方法
问题定义: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值(0方法一:学过程序设计的都会,那就是枚举i和j,求i和a[i]到a[j]之间的和的最大值。int maxsub(int *a,int n){ int i,j,k,maxn=0; for(i = 0 ; i
2013-07-30 10:19:02 1014
转载 最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
接上一篇:最短路径算法—Bellman-Ford(贝尔曼-福特)算法分析与实现(C/C++)Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路算法
2013-07-26 14:44:01 493
转载 最短路径算法
相关文章:1.Dijkstra算法:http://www.wutianqi.com/?p=18902.Floyd算法:http://www.wutianqi.com/?p=1903Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短
2013-07-26 14:41:43 372
原创 CF328解题报告
A题:IQ Test很水的题,就是给出数列的前四项,判断出是等比还是等差。求下一项。code:#include using namespace std;int main(){ int a,b,c,d; cin >> a >> b >> c >> d ; if(a + c == 2 * b && b + d == 2 * c)
2013-07-25 09:30:54 462
转载 tarjan算法
算法说到以Tarjan命名的算法,我们经常提到的有3个,其中就包括本文所介绍的求强连通分量的Tarjan算法。而提出此算法的普林斯顿大学的Robert E Tarjan教授也是1986年的图灵奖获得者(具体原因请看本博“历届图灵奖得主”一文)。首先明确几个概念。强连通图。在一个强连通图中,任意两个点都通过一定路径互相连通。比如图一是一个强连通图,而图二不是。因为没有一条路使
2013-07-24 21:04:51 401
转载 博弈-Green Hackenbush(无向图删边)
转自:http://blog.sina.com.cn/s/blog_8f06da990101252l.htmlGreen HackenbushHackenbush游戏是通过移除一个有根图的某些边,直到没有与地板的相连的边。地板用虚线来表示,其中移除某一条边的时候,那条边以上所连着的所有边都会移除,就像砍树枝那样,树枝以上的部分也会被移除。在这节中,我们讨论这个游戏的公平版本
2013-07-24 18:35:53 539
转载 【博弈】删边游戏
原文地址:http://blog.sina.com.cn/s/blog_51cea4040100h5j4.html忽忽,今天终于结束了贾志豪博弈的论文,很高兴,ccy都弄懂了。这里,特别感谢一个人,在ccy思考最后一部分无向图删边游戏遇到困难准备沉入厚厚的英语大书里时,伟大地拯救了ccy,真的很感谢,td哥哥~~~现在,ccy一步一步的来。一、链的删
2013-07-24 18:34:40 681
原创 POJ2909:Goldbach's Conjecture
这道题很水。主要就是筛法求素数,直接上代码#include #include #include #include #include #include using namespace std;int prime[100000] ;void isPrime(){ memset(prime,1,sizeof(prime)); prime[0]
2013-07-24 14:35:50 442
原创 博弈题目总结
第一题:Matches GameHere is a simple game. In this game, there are several piles of matches and two players. The two player play in turn. In each turn, one can choose a pile and take away arbitrary numb
2013-07-23 21:21:37 570
原创 13年杭电多校赛1解题报告
1003:I-number这题就是注意一下是数字长度是100000.,而不是数字大小是100000.只要逐个字符处理即可,当单个字符大于等于10时,向前进位。#include #include #include #include #include using namespace std;int max(int a,int b){ if(a<b)
2013-07-23 17:04:30 688
原创 130722CF282解题报告
A题:Bit++水题,就是求n个++或者--的操作后的结果,直接上代码:#include #include #include #include using namespace std;int main(){ int i,j,n; string s; char a; int b=0; cin >> n ;
2013-07-23 10:56:43 460
原创 130720CF div2解题报告
A题:Cakeminator这题很水,直接上代码:#include #include #include #include #include using namespace std;int main(){ int r,c,r1=0,c1=0; char a[20][20]; cin >> r >> c; int i,j; for(i=0
2013-07-22 14:01:03 396
原创 HDU1847:Good Luck in CET-4 Everybody!
一道典型的巴什博奕:我已开始把前几种情况模拟出来,到3张牌时,是先手必败。那么只要先手让后手面对3 的倍数的时候,那么后手不论怎么拿,总会剩下3k+1或者3k+2张,那么先手只要再拿1张或者2张,又会使后手面对必败的局势。#include using namespace std;int main(){ int n; while(cin >> n)
2013-07-20 20:25:04 443
转载 计算几何算法概览
一、引言 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望对您了解
2013-07-20 18:44:15 434
原创 CF327
A题:Flipping Game题意:n个数字由0,1组成,一次反转定义为将连续的n个0翻转为1.求经过一次翻转后,1的个数做多是多少???很水的一道题,方法就是求出1的个数和连续0个数最多的区间长度。二者相加就是答案~~~#include #includeusing namespace std;int main(){ int i,n,a,x,y,mx; cin
2013-07-20 16:47:33 607
原创 POJ1008:Maya Calendar
题意:玛雅人有两种历法:第一种:一年有365天,分为19个月,前18个月每月有20 天,最后一个月有5天,每个月的名字非别为:pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu,uayet。每个月天数从0开始,即前18个月0-19,第19个月是0-
2013-07-19 16:27:30 533
原创 POJ1007:DNA Sorting
本题就是简单的结构体排序,他先定义出一个unsortless就是一个字符串它的每个字符比他后面字符大的个数之和,例如:DAABEC。D后面比D小的有4个,A后面0个,A后面0个,B后面0个,E后面一个,C后面0个,所以是五个。下面输入n个字符串,每个字符串有m个字符。请你编写个程序将字符串按照上面方法得到的数按照从小到大排序输出~~~#include #include using
2013-07-19 15:02:49 442
原创 HDU1564:play games
题意:两人做游戏:有n*n的棋盘,两人依次移动石子,每次只能水平或垂直移动一个格子,并且走过的格子不能再走。知道不能移动为止。思路:这道题很简单,两人移动石子可定会走遍整个棋盘,那么这就与棋盘格子总数的奇偶有关系。是奇数的话,那么后手胜,否则先手胜。#include using namespace std;int main(){ int n ; wh
2013-07-19 11:33:49 493
原创 POJ2348:Euclid's Game
题意:有两个人玩游戏,游戏内容如下:有两个自然数,第一个人从较大的数中减去较小数的正整数倍,结果是非负数。两人交替进行游戏,谁先把较大的数变为0,则胜利,游戏结束。解题思路:以m>= n为例(m =2时,肯定能够到达上两种情况的任意一种~~~,则为必胜。代码如下~#include using namespace std;int check(int m,int n){
2013-07-19 11:06:42 463
原创 nim博弈论 SG
Nim游戏 Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(
2013-07-18 18:50:29 481
转载 博弈总结
以下是我从网上收集的关于组合博弈的资料汇总:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规
2013-07-15 15:59:07 438
原创 POJ1082:Calendar Game
题意是:Adam和Eve两人做游戏,开始给出一个日期,截止日期是2011.11.4,游戏规则如下:每个人只能将天数增加一天或者将月份增加一天。如果下个月没有这一天,那么只能增加天数。游戏胜利定义为:先到截止日期的为胜。每次都是Adam先开始。本题就是找规律的博弈题,规律为:不论增加天数还是增加月份,都会改变mm+dd值奇偶性,除了9月30日和11月30日。那么只要是mm+dd为偶数
2013-07-15 15:47:18 488
原创 不懂几何者慎入
Description古希腊柏拉图学院的门口竖着一块牌子"不懂几何者慎入"。Julyana是一个超级大学霸,作为一个去过古希腊柏拉图学院的人(梦里经常去),她经常去帮她的学弟学妹们解决一些数学难题。这次一位高中的小学弟给Julyana提出了一个几何问题,可是Julyana太忙了,只能让你们这些从高中毕业不久的童鞋们帮他来解决了。题目如下:有一正四棱柱,给出底面(即正方形面)边长a和侧面(即矩形
2013-07-15 10:08:07 1086
原创 0712CF237
A题:Free Cash本题类似于校门外的树,,,思路是:取同时到达咖啡店的人数的最大值,只要服务人员达到这个数量,那就能够保证服务全部的顾客,所以用暴力搜索方法~~~,代码如下:#include #include #include using namespace std; int sum[1440]={0}; int h[1000000]; int m[1000000]
2013-07-14 22:06:17 451
原创 7月12日C题:Primes on Interval
本题时间限制挺严,正常思维是利用三重循环暴力求解,但是会TLE,而且二重循环也会TLE。还有一个问题是,判断素数不能利用函数判断,这样肯定会超时,所以就利用打表标记的办法,把是素数的标记为1,不是的标记为0,下面在去掉一重循环的方法是求区间内素数的个数,就是将a—b区间上的素数存到p【】数组中~~~,如果p【b】下面定义ans=1,ans从1开始增加判断是否符合条件。最后输出ans。代
2013-07-13 15:37:46 519
原创 7月12日B题:Young Table
本题有个坑,就是输出的交换次数不一定是样例给出的,只要交换次数小于总的个数就可以了~~~~所以这道题就边的简单了,只要按从左到右、从上到下的顺序从1—s就可以了。思路是:输入时,用p[N*N],q[N*N]记录每个数所在位置的下标,即i,j,然后用x[N*N],y[N*N]记录交换的第一个数的下标,用u[N*N],v[N*n]记录交换的第二个数的下标,接下来实现交换就可以了。代码如下~
2013-07-13 10:07:14 428
原创 7月12日A题:Free Cash
本题类似于校门外的树,,,思路是:取同时到达咖啡店的人数的最大值,只要服务人员达到这个数量,那就能够保证服务全部的顾客,所以用暴力搜索方法~~~,代码如下: #include #include #include using namespace std;int sum[1440]={0};int h[1000000];int m[1000000];int main
2013-07-12 23:49:52 483
原创 testagain0710
A题:找规律的题,如果n%4==0,那么就能被3整除。#include #include using namespace std;long long a[1000005];int main(){ int t,i,j; cin >> t; for(i=0;i { long long n; cin
2013-07-12 15:38:16 521
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人