觉得浮夸了四年,漠然发现原来是浮躁了四年!

05 2013 档案

摘要:刚开始没有注意那个Hint : 0! = 1, N! = N*(N-1)!结果WA了!本题N的数据可以到10的9次方,暴力就算了,冷静分析一下吧!阶乘数的一个特点就是当n的阶乘数的可以整除一个数m时,那么比n大的阶乘数都含有这样的因子;因此,本题只需要计算出第一个n的阶乘数f(n),满足f(n)mod2009=0;即可。后面的数只要大于等于n,直接输出“0”即可。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 #define N 1000 5 long long num[N]; 6 lo 阅读全文
posted @ 2013-05-06 11:10 heat nan 阅读(412) 评论(0) 推荐(0) 编辑
摘要:学到现在发现自己是会的越来越少了,不会的越来越多了!本体给出一个方程a*x+b*y=1;给出a,b的值,求出x,y,其中y为负值。就是求解直线方程。思路:求出a,b的最大公约数gcd(a,b);方程左边(一定能够整除最大公约数)除于最大公约数肯定为一个常数,所以方程右边只有对这个最大共约能整除的时候两边才有可能相等。具体的实现过程还有待研究。菜菜,还有很多疑问啊!#include<iostream>#include<cstring>#include<cstdio>using namespace std;long long exgcd(long long a, 阅读全文
posted @ 2013-05-06 09:56 heat nan 阅读(405) 评论(0) 推荐(0) 编辑
摘要:好坑爹的一题,刚开始暴力DFS,果断超时。其实可以做一个变形,i×j+i+j可以变形为i×(j+1)+j+1=n+1;进而可以变化为(i+1)×(j+1)=n;即统计一下n%(i+1)==0可以出现多少次即可;写这一题目是在Ubuntu的codeblocks交了不下十多次吧!总是wrong!最后,不管了编译器,把long long怒改写成了__int64,ac了,无语啊!至今仍然不知道why?View Code 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 6 int t 阅读全文
posted @ 2013-05-05 20:19 heat nan 阅读(234) 评论(0) 推荐(0) 编辑
摘要:这道题目没什么说的,刚开始快排超时了,后来就没有办法了。搜了一下才知道是hash,hash没怎么用过,记得这是第二次吧!记录一下!简单分析下超时的原因:本题的数据n最大的值为1000,如果取任意的两个数值进行绝对值计算,那么最多就会产生1000*1000/2个数据,大概就是500000个数据,下面又对这么的值进行排序,查找就超时了。用hash的方法,压缩了数据量,因为任意两个1000以内的数据进行绝对值计算,范围一定在0-2000内,所以hash算法,大大的压缩要处理的数据量,提高了查找的效率。 1 #include<iostream> 2 #include<cstring& 阅读全文
posted @ 2013-05-04 20:21 heat nan 阅读(340) 评论(0) 推荐(0) 编辑
摘要:也许acm的迷人之处就在于这样的题目,当然也就是一些大牛嘴里的水题。这一题,我做的时候想通过实例去发现他们之间是否存在什么关系,可惜数很小的时候情况就非常多,感觉无从下手,一直也没有解出来。其实,就是遇到这样的问题,不能站在一个高度上去看这个问题,及思维局限在了繁杂的实例上。这一题可以这样考虑:假如有m行n列,首先,考虑单独的一行,一行一共有n个矩形,一个小单位矩形组成的矩形有n个,两个小单位矩形组成的矩形有n-1个,.......n个单位小矩形组成的矩形有1个,所以一行一共有n×(n+1)/2个,然后,把每一行缩成一个小单元矩形,则考虑一列的时候和考虑行的时候一样,每一列有m 阅读全文
posted @ 2013-05-04 20:13 heat nan 阅读(403) 评论(1) 推荐(1) 编辑
摘要:这一题推了半天也没有推出来,推的时候各种复杂啊!感觉自己弱暴了没,思考问题的方法不行!现在看了别人的报告只能说是想通了。当n大于等于5的思路大致是这样的:(PS递归的问题,总是要基于前一个状态的,所以一般从前一个状态分析起)。假如有ABCD四个人,他们完成信息交流需要f次,那末,五个人的时候,比如添加了E,可以首先让E与A进行一次信息交流,这时他们的信息互换,A的信息包含了E的信息,而E的信息也随A参与下面传递,那么这时仍然经过f次,ABCD四个人的信息交流完毕,而且信息中也都含有E的信息。此时,ABCD四个人已经都掌握其他所有人的信息,只剩下E,再让E与他们任何一一个人一次信息交流即可。所以 阅读全文
posted @ 2013-05-03 18:05 heat nan 阅读(354) 评论(0) 推荐(0) 编辑
摘要:hdu 2037 今年暑假不AC (http://acm.hdu.edu.cn/showproblem.php?pid=2037)比较经典的贪心问题之一,以结束时间排序,如果下一个时间的开始时间大于等于上一个事件结束时间,那么结果就加一。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 struct node 7 { 8 int start; 9 int end;1 阅读全文
posted @ 2013-05-03 09:33 heat nan 阅读(341) 评论(0) 推荐(0) 编辑
摘要:给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。最大匹配即最大的匹配个数。关于二分匹配的基本问题:http://www.cnblogs.com/heat-man/archive/2013/03/26/2982644.htmlhdu 1083 courses(http://acm.hdu.edu.cn/showproblem.php?pid=1083)本题题目叙述有点乱,英语不好看了很久,有p门课,n个学生,每个学生可以选修1-p门课,给出了每一门课的学生选择信息(学生的序号),现在要成一个委员会,需满足每一门课都有一个选修了该课程的学生 阅读全文
posted @ 2013-05-02 20:03 heat nan 阅读(308) 评论(0) 推荐(0) 编辑
摘要:早就感觉这一题很有意思,一直迫于麻烦没有写,今天下午花了将近三个小时AC掉了,呵呵,以后就不怕这样的数独了。大致思路:用一个结构体s,将每一个‘?’的位置信息记录,以备后面DFS。对s中的每一个元素进行遍历,即对每一个‘?’号遍历。每个‘?’号处试着放入1-9的数并检查这个数是否符合要求。即,检查一行,一列以及一个3×3方格内是否有相同的数。刚开始,每组个实例后输出一个空格后说是表达错误,应该是最后一组实例多输入空格了吧! 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 u 阅读全文
posted @ 2013-05-02 17:01 heat nan 阅读(213) 评论(0) 推荐(0) 编辑
摘要:纠结了一个上午,原来是运算符重载弄错了!我去。该题用一个四维数组标记人和箱子的当前状态。在判断是否满足队列条件时,用continue巧妙的处理了,如果搬运工遇到箱子的问题。 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<queue> 5 using namespace std; 6 struct node 7 { 8 int x,y; 9 int bx,by; 10 int step; 11 bool friend operator<(node 阅读全文
posted @ 2013-05-02 11:31 heat nan 阅读(145) 评论(0) 推荐(0) 编辑
摘要:这两天KMP练得刚手热,学长又弄出个拓扑排序,去年拓扑排序提了一下,没有研究,先贴出代码吧!传说中拓扑排序裸题,奇怪的是我第一次比照着写的代码感觉不错啊!为什么总是WA。后来干脆重新写了一遍,果断ac。WA代码: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 #define N 505 6 int n,m; 7 int match[N][N]; 8 int de[N]; 9 int main()10 {11 //freopen(&quo 阅读全文
posted @ 2013-05-01 19:18 heat nan 阅读(194) 评论(0) 推荐(0) 编辑
摘要:这一题很早很早以前就遇到了,一直一来迟迟没有动手。直到昨天为止,做了足够多的”前戏“,才敢下手。题目大意:给定一个字符串,比如 abab,找出i(1=<i<=n)个单位长度的前缀在字符串中出现的次数和。前缀 出现次数a 2ab 2aba 1abab 1所以,答案就是6;用dp[i]记录字符串中前i个字符中所包含的前缀个数。i dp[i] 包含的前缀 next[i]1 1 a 02 1 ab 03 2 a,aba 14 2 ab,abab 2通过上面的列表可以发现,前i个字符至少含有一个前缀,那就是它本身;当i=3时,为何有两个前缀?有nex数组的意义可以知道:因为n... 阅读全文
posted @ 2013-05-01 10:09 heat nan 阅读(332) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示