- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 HDU 4649
题目中有个很重要的条件 ,Ai will be less than 220,所以把每一个数转化成二进制来算不会超过20位分别对每一位进行运算,算出每一位上最终结果为1 的概率,再乘上该位二进制对应的十进制数,得最终得到1的概率,即为期望#include #include#include#include#include#include#includ
2013-08-06 22:13:39 764
原创 HDU 1695
求1将问题转化为求1令d>=b;在[1,b]区间,x,y互质的数的个数即eular[b]在[b+1,d]区间,一一枚举i∈[b+1,d],求在[1,b]区间与i互质的数的个数,用b-不互质的数的个数,这里用到了容斥原理参考了大牛的代码,如下#include #include#include#define LL __int64#define maxn
2013-08-04 16:41:30 701
原创 HDU 1796
容斥原理#include #include#include#include#define LL long long using namespace std;int t,n,m; LL ans,num[25]; int gcd(LL x,LL y) { LL t; if(x>y) { t=x; x
2013-08-04 14:40:31 697
原创 HDU 1845
求最大匹配用向量,数组会超内存双向,除二hungary算法#include #include#include#include#includeusing namespace std;const int MAXN=5001;vector g[MAXN];int uN,vN; //u,v数目int linker[MAXN];bool used[MAXN];
2013-08-02 22:24:47 1182
原创 HDU 2389
求最大匹配数数据比较大,hungary算法会超时,要用Hopcroft-karp算法#include #include#include#include#include#includeusing namespace std;const int MAXN=3001;struct guest{ int x,y,s;}gue[MAXN];struct umb
2013-08-02 21:05:53 746
原创 hdu 4619
二分匹配横着的和竖着的可能有重叠部分,有重叠部分的建一条边,求最大匹配即为最小覆盖定点数,再用总的多米诺骨牌数减去,即可求得答案;#include #include#include#include#include#define maxn 1005using namespace std;int n,m,k;int linker[maxn];
2013-08-02 20:32:55 708
原创 HDU 1281
求最大匹配和必要点求必要点,一个个枚举,判断去掉这个点之后最大匹配数是否变化#include #include#include#include#define N 105using namespace std;int n,m,k;int g[N][N];int linker[N];bool usde[N];bool dfs(int u){ int v;
2013-08-02 16:25:21 632
原创 HDU 4632
用dp[i,j]表示原字符串中[i,j]回文串的个数dp[i,j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1];因为中间[i+1,j-1]段会被重复计算,所以减去如果str[i+1]==str[j-1]dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]+dp[i+1][j-1]+1;dp[i][j]要在原来的基础上加
2013-08-02 14:02:40 741
ZendStudio12.0.2破解
2016-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人