摘要:
最后两次组队赛的题都相对简单,所以两次都得到较高的题目数!一次是在hdu的diy上做,另外的是在bnu做spoj的题。 先补回倒数第二场的总结。 倒数第二场一共有10题,当时过的题包括一题枚举求最大值,一题二分求概率,一题枚举求概率,还有一题网络流。上次开始的时候出题不利,刚开始就因为题目没写多case所以我就以单case打了个代码而吃了好几个wa,耗费了我近半个小时来debug。然后就是一题很水的概率统计,不过因为没有注意到边界条件wa了好几次,当时就搞到我没心情做下面的题了。接着就是队友hq发现了一题网络流,然后他想到了方法,所以我就给他抄了个isap的模板上去,后面的他自己打... 阅读全文
摘要:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4775 看yh大佬的课件的时候看到这题找规律的题,于是我就做了一下。原本我还想在函数开头先加1,结果没发现加1以后就溢出了,所以wa了一次,改过来就好。 题意简单,主要是要打表出来,发现一个规律,n^2-1和n^2的布尔值是不同的,所以只要一个等差数列求和就可以分别求出0到a-1和0到b的值了。View Code 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cmath> 4 #i 阅读全文
摘要:
http://poj.org/problem?id=2485 稍微变形的MST,只要改一改变量的意义就行了!View Code 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 5 using namespace std; 6 const int MAXV = 505, MAXE = 505 * 505, INF = (~0u)>>2; 7 struct edge{ 8 int t, w, next; 9 }es[MAXE << 1]; 10 int h[ 阅读全文
摘要:
http://poj.org/problem?id=1789 简单MST,要注意cnt和size清零!View Code 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 5 using namespace std; 6 const int MAXV = 2005, MAXE = 2005 * 2005, INF = (~0u)>>2; 7 char car[MAXV][10]; 8 struct edge{ 9 int t, w, next; 10 }es[MAXE 阅读全文
摘要:
http://poj.org/problem?id=1258 还是简单MST,拿来测试模板的性能...View Code 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 5 using namespace std; 6 const int MAXV = 105, MAXE = 105 * 105, INF = (~0u)>>2; 7 struct edge{ 8 int t, w, next; 9 }es[MAXE << 1]; 10 int h[MAX 阅读全文
摘要:
http://poj.org/problem?id=1251 简单MST...View Code 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 5 using namespace std; 6 const int MAXV = 28, MAXE = 28 * 28, INF = (~0u)>>2; 7 struct edge{ 8 int t, w, next; 9 }es[MAXE * 2]; 10 int h[MAXV], cnt, n, heap[MAXV] 阅读全文
摘要:
题目编号:hdu 4257~4266 (对应比赛题号1001~1010) 这是我们第十二场组队赛,在今天中午进行。 比赛刚开始,依然是由我的队友读题。还没看几题,就发现了好多题judge时长高达20秒,这真的有点给我们心理造成压力。不过,我们很快就缓解下来,然后进入读题切题的状态。因为水平不足,所以还是选择跟board做。开始没几分钟,大board就有人过了1003,于是我们就赶紧看1003了!题目相当简短,很快就看懂了是纸牌经过一系列操作以后得到另一个序列,问操作多少次会再次出现初始序列。刚开始还打算打表来看看规律,程序打出来了,发现跑起来,答案可以超过10^9,就是说暴力是不可能的。不.. 阅读全文
摘要:
题解链接:http://page.renren.com/601081183/note/867254911题目编号:hdu 4390~4399 这是杭电多校联合的最后一场比赛了,直到最后的这场比赛我们队在比赛中的题目数还是没有突破3题的局限。 今天比赛开始的时候,依然是我的队友读题,而我就随便看了一题在一边想。第一题看到的就是1001,一道排列组合的题目。这几天都有看排列组合的题,不过基本上都不能1y,所以这题我想了一下,翻了一下《组合数学》,然后就放弃了。1001的思路是有的,不过就是不会后期的计算。组合数学是我的弱项,之后的学习必须要加强! 然后就是队友看的1004,刚开始,我想着暴力... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=4033 这道题需要二分法求正多边形边长。 题目给出正多边形内的一点与各个顶点间的连线线段长度,要求求出正多边形的边长,如果不存在这样的正多边形就输出impossible。 由题目可以知道边长不会超过17320,所以就假设边长在(0, 20000)之间。然后,构造出计算当前状态的函数,再借助二分法来找到满足要求的点。这题的精度要求是精确到小数点后3位,不过要ac就必须将精度调至1e-6。计算当前状态的函数是要计算当边长为某个值的时候,所有相邻两条线的夹角和是否为2π。如果大于2π就缩小边长,否则就增大边长... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1402 大数乘法,将乘法转换成多项式来解,用DFT加上分治法,将O(n^2)的复杂度降至O(n logn). 在FFT(快速傅里叶变换)中,构造旋转因子并且利用蝴蝶操作将原来的每个系数离散化,然后将两个多项式对应的系数乘起来。因为傅里叶变换是一个可逆的操作,所以最后IDFT,将答案的每个系数还原,最后输出结果。 目前我对FFT的机理还没完全理解,只能明白是利用DFT(离散傅里叶变换)将一个多项式离散化,构造出傅里叶级数,然后再利用其周期性的性质,对应系数相乘,这时相当于每一位都和相对的每一位相乘,然后将... 阅读全文