摘要:
#include #include #include #include #include #include using namespace std; const static int M = 50; int numA[M]; int numB[M]; //使用string重置numA void resetNumA(string numAStr) { memset(numA,0,M... 阅读全文
摘要:
kuangbin字符串专题传送门--http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70325#overview 算法模板: KMP: const int MAXM=10010; const int MAXN=1000010; int a[MAXN],b[MAXM],Next[MAXM]; int n,m; void getNex... 阅读全文
摘要:
题目转自:https://crazyac.wordpress.com/dp%E4%B8%93%E8%BE%91/ 1.hdu 1864 最大报销额 唔,用网上的算法连自己的数据都没过,hdu的数据居然就过了。。垃圾数据。。 比如这个:100.00 3 1 A:1000.00 1 A:200.50 ... 阅读全文
摘要:
http://poj.org/problem?id=2413 #include #include #include using namespace std; //到第485个fib数才有100位 const int LAST=108; char res[500][110]; //存储fib数 char *pos[500]; //存储每个fib数的首地址 char* Addition(char *... 阅读全文
摘要:
http://poj.org/problem?id=2773 说实话这道题。。一点都不Happy好吗 似乎还可以用欧拉函数来解这道题,但正好刚学了容斥原理和二分,就用这个解法吧。 题解:要求输出[1,m]中与m互质的第k个数,先打表,找到m的所有质因数,然后用二分实现,最开始区间为[1,2^60],利用容斥原理去找区间[1,mid]内素数的个数t,不断进行二分,直到所查找的区间[l,r]内素数的个... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2461 题目很简单,但是由于询问数M可以很大,所以容易超时,这道题学到了在结构体里面写函数的方法,这样子效率更高,否则的话,这道题就TLE了。 根据容斥原理,先把每个小长方形的面积加上,然后看有没有与该小长方形相交的,用dfs实现,当相交面积为0时,则不进行dfs,且同样遵循奇加偶减(但代码里因为是以第二个作... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1695 翻译题目:给五个数a,b,c,d,k,其中恒a=c=1,x∈[a,b],y∈[c,d],求有多少组(x,y)满足GCD(x,y)=k? //(x,y)和(y,x)视作同一个 题解:既然是要x,y的最大公约数为k,那说明x/k和y/k是互质的,只需在[1,b/k]和[1,d/k]范围内找到适合的x,y即可... 阅读全文
摘要:
《组合数学》里面的容斥原理,写的。。太乱了啊, 下面是关于容斥原理的详细介绍链接:http://www.cppblog.com/vici/archive/2011/09/05/155103.html 自己理解个粗浅的意思,容斥原理其实就是概率论里面的加法公式的n项延伸, 对于集合Ai有以下原理公式, 原理的意思就是: 要计算n个集合并集的大小,先计算所有单个集合的大小,再减去所有两个集合相... 阅读全文
摘要:
以下三道都是经典二分,道理都差不多,代码就贴在一起了。 POJ 3122 POJ 3258 POJ 3273 POJ 3122: #include #include #include #include using namespace std; #define PI 3.14159265359 //ÓÃ3.1415926»áWA¡£¡£¡£ double pie[10005]; i... 阅读全文
摘要:
http://poj.org/problem?id=1905 题意:将一条直线变成一条弧线(该弧线是圆的一部分),求中心位置发生的位移。 由于精度需要控制好,所以选择用圆半径作为二分的目标,l=0,r=INF,LL为弧线长度,根据半径mid以及弦长L,可以求出对应的弧线长度t=2*asin(0.5*L/mid)*mid,再与LL比较,若t #include #include u... 阅读全文