- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 大数运算
进过测试,没有bug , 存储4w。const int maxn = 9999 ; // 每位储存4位const int dig = 4 ;class BigNum{ public : int a[7150] ; int len ; BigNum(){len = 1 ; memset(a , 0 , sizeof(a)) ;}
2014-04-25 17:34:44 521
原创 大数取余,千进制
s = string(str) ; d.clear() ; for(i = s.length()-1 ; i >= 0 ; i--){ t += op[j++] * (s[i] - '0') ; if(j == 3) { d.push_back(t) ; j = t = 0 ;}
2014-04-23 17:31:09 799
原创 高斯消元
double型double a[maxn][maxn] , x[maxn] ; //a[i][j] 系数矩阵 , a[i][n+1] = y[i] , x解int n ; //n个方程void guass(){ int i , j , k ; double sum , rate ; for(k = 1 ; k < n
2014-04-23 10:20:49 549
原创 数论cf300E
题意:给定N个数a1,a2,a3...aN,现在要求最小的n满足 n!/(a1!*a2!*...*aN!) 是一个正整数的最小的n。分析:这题的想法很明确,就是分解a1!*a2!*...*aN!,把其分解成质因子相乘的形式,这个都很熟悉了,然后就是对每一个质因子二分搜索出一个数字下界,最后求其中最大的一个数,问题的关键就是如何分解这样一个表达式成一个质因子相乘的形式。使用一个cnt数组来表
2014-04-22 10:40:34 912
原创 数论ZOJ 2562
题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最大的一个。分析:反素数定义:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0性质一:一个反素数的质因子必然是从2开始连续的质数。性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=..
2014-04-22 09:40:53 543
原创 二分最大匹配总结
HDU 2444黑白染色。const int maxn = 208 ;vector g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){ color[u] = c ; for(vector::iterator i
2014-04-20 21:40:21 583
原创 网络流总结
HDU 4292题意:有F种食物 D种饮料 它们都有一定的数量 有N个人 每个人都有自己喜欢吃的食物和饮料 (每个人至少要一种食物和饮料) 只有能满足他的要求时他才会接服务 求最大能满足多少人?char str[300] ;int main(){ int N , m , i , j , u , v , c , F , D ; while(scanf("%
2014-04-20 13:01:08 546 1
原创 最大流=最小割=最小点权覆盖集=sum-最大点权独立集
二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。 二分图最小点权覆盖 从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。建模: 原二分图中的边(u,v)替换为容量为INF的有向边(u,v),设立源点s和汇点t,将s和
2014-04-19 22:43:59 1691
原创 字符串Hash总结
int ELFhash(char *s){ unsigned int h = 0 ; unsigned int g ; while(*s){ h = (h<<4) + *s++ ; //h左移4位 + 字符 g = h & 0xf0000000L ; //g = 取h的最高4
2014-04-18 16:51:59 635
原创 最近公共祖先LCA Tarjan算法
在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历,这时候才把u结点放入合并集合中,这样u结点和所有u的子树中的结点的最近公共祖先就是u了,u和还未遍历的所有u的兄弟结点及子树中的最近公共祖先就是u的父亲结点。以此类推。。这样我们在对树深度遍历的时候就很自然的将树中的结点分成若干的集合,两个集合中的所属不同
2014-04-09 22:45:32 565
原创 男人八题总结
POJ 1737 统计有n个顶点的连通图有多少个 (带标号)分类: POJ2013-10-08 22:13 231人阅读 评论(0) 收藏 举报设f(n)为所求答案g(n)为n个顶点的非联通图则f(n) + g(n) = h(n) = 2^(n * (n - 1) / 2)其中h(n)是n个顶点的联图的个数这样计算先考
2014-04-09 15:49:16 758
原创 HDU 2159 二维完全背包
FATEProblem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。
2014-04-08 16:52:49 584
原创 Codeforces Round #240 (Div. 2) E分治算法探究1
给你2^n个数,每次操作将其分成2^k份,对于每一份内部的数进行翻转,每次操作完后输出操作后的2^n个数的逆序数。
2014-04-07 21:19:47 927
原创 归并排序逆序对短小代码
typedef long long LL ;const int Max_N = 500008 ;int x[Max_N] ;LL bigger[32] ;void Divide(int L , int R , int dep){ if(L == R) return ; int M = (L + R) >> 1 ; Divide(L , M , dep
2014-04-07 20:11:32 534
原创 HDU3926 判断图同构(只有环、链)
http://acm.hdu.edu.cn/showproblem.php?pid=3926用并查集合并,得到若干个集合,比较两个图中集合yuans是否相同,包括集合的个数,集合中点的个数,集合中点的构成是链还是环。
2014-04-07 11:20:41 758
原创 我的点双连通模板(HDU2242)
http://acm.hdu.edu.cn/showproblem.php?pid=2242const int Max_N = 10008 ;const int Max_M = 20008 ;struct Edge{ int u ; int v ; int next ;}edge[Max_M*4];int id ;in
2014-04-05 11:21:59 626
原创 单调栈模型图解入门(HDU1506)
HDU 1506 面积合并http://acm.hdu.edu.cn/showproblem.php?pid=1506很经典的一个题目了。保持栈单调递增。 4号节点来的时候, 3号节点已经无法向又扩展。 1 、则3号的生命周期结束。 以3号节点高度为矩阵长的 宽度为 (4-3) 。 2 、2号的生命周期结束。 以2号节点
2014-04-03 23:13:08 1508 1
原创 双调旅程(bitonic tour)问题
J.L. Bentley 建议通过只考虑双调旅程(bitonic tour)来简化TSP问题。,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后严格地从右到左直至出发点。 双线性DP。将一个人从最左端走到最右端,然后从最右端走到最左端等价成两个人同时从最左端不重复的走过中间的点并且到最右端。我们不妨设这两个人为A和B,且总是假定走在前
2014-04-03 15:32:30 1601 1
原创 C++系列 HDU1619
case1 : 1 2 3 4 4 516case2 :1 2 1 5 4 511N* M的地图, 从左往右走,只能走同行或者相邻行, 1行与N行相邻。求最小的权值和 ,并输出字典序最小的路径。1 、 vector 的逆序操作写法2 、对于 vector > 排序方式就是字典序从小到大的方式。2、 整体的设计const int M
2014-04-02 10:05:36 640
原创 HDU 3929 容斥原理
题意:F(x) = (1+x)^a1 + (1+x)^a2 + ... + (1+x)^am,求系数是奇数的项的个数。容斥原理:递归形式[cpp] view plaincopydfs(int beg,set S,int sym) { ans+=num(S)*sym; for(int i=beg;i
2014-04-01 23:07:11 777
原创 Lucas定理
数论Lucas定理是用来求 c(n,m) mod p的值,p是素数(从n取m组合,模上p)。描述为:Lucas(n,m,p)= c(n%p,m%p)* Lucas(n/p,m/p,p)Lucas(x,0,p)=1;而c(a,b)=a! * (b!*(a-b)!)^(p-2) mod p也= (a!/(a-b)!) * (b!)^(p-2)) mod
2014-04-01 21:27:45 543
原创 HDU 1695 容斥原理
题意: 在1~a, 1~b中挑出(x,y)满足gcd(x,y) = k , 求(x,y) 的对数 , a,b思路: gcd(x, y) == k 说明x,y都能被k整除, 但是能被k整除的未必gcd=k , 必须还要满足互质关系. 问题就转化为了求1~a/k 和 1~b/k间互质对数的问题可以把a设置为小的那个数, 那么以y>x来保持唯一性(题目要求, 比如[1,3] =
2014-04-01 17:30:28 553
原创 旅行商模型
旅行商问题(Traveling Saleman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。HDU 4568 http://acm.hdu.edu.cn/showproblem.php?pid=4568进出一次,找到所有能找到的宝藏
2014-04-01 11:33:33 2728
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人