![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM程序设计
pyuuu
# 为了潜行技术
展开
-
HDU 1233最小生成树 Kruscal 算法
Kruscal 是一种贪心策略。按边长从小到大排序,枚举每条边时,考察这条边的两个定点:1.这两个顶点属于同一个集合则舍弃这条边。2.这两个顶点不属于同一个集合则采取这条边,同时合并这两个顶点。判断两个点属于哪个集合需要用到并查集下面AC代码#include#includeusing namespace std;typedef long long ll;co原创 2016-12-23 15:45:23 · 415 阅读 · 0 评论 -
对于康拓展开的理解
康拓展开是为了给一个排列标号。建立起排列--标号一一对应的关系。举一个例子 {1,2,3} 排列共有六个 123 ,132 ,213,231,312,321定义大小的含义,按字典序排列后左边小于右边。有一种标号方式很暴力,我们可以赋予每一个位置一个权重{3!,2!,1!}这样这六个排列都可以获得,一一对应的标号了。但是这种标号方式有缺点。浪费比较大实际上只需要6个数就可以进原创 2017-02-21 20:21:21 · 313 阅读 · 0 评论 -
POJ - 2528 线段树 + 离散化
#include#include#include#includeusing namespace std;const int maxn = 1e5;int rr[maxn+10];int ll[maxn+10];int p[maxn+10];struct Nod{ int va,q;}nod[(maxn << 2) + 10];int bs(int l,int r,int原创 2017-01-17 10:24:00 · 232 阅读 · 0 评论 -
CodeForces 597C 树状数组 dp
CodeForces 597C#include#include#include#define ll long longusing namespace std;const ll maxn = 1e5;ll d[maxn+10];ll dp[15][maxn+10];ll a[maxn+10];ll n,k;ll lowbit(ll x){ return x&(-x);}原创 2017-01-16 10:29:36 · 233 阅读 · 0 评论 -
atcoder ABC51 B题
题目链接 http://abc051.contest.atcoder.jp/tasks/abc051_b#include#include#define ll long longusing namespace std;ll f(ll s,ll k){ if(s < 0) return 0; if(k >= s) return s+1; if(s%2 ==原创 2017-01-10 20:36:38 · 572 阅读 · 0 评论 -
HDU 1556 树状数组
#include#include#includeusing namespace std;const int maxn = 1e5;int n;int lowbit(int x){ return x&(-x);}void print2(int x){ int i;// for(i = 31;i >= 0;--i) if(x & (1 << i) != 0)原创 2017-01-14 16:44:35 · 183 阅读 · 0 评论 -
codeforces 9C 数位DP做法
#include#include#define ll long longusing namespace std;int dp[12][12];int main(){ dp[1][1] = 1; dp[1][0] = 1; for(int i = 2;i <= 10;++i){ for(int j = 0;j <= 1;++j){原创 2017-01-03 22:25:13 · 372 阅读 · 0 评论 -
HDU 1232 并查集裸题
#include#includeusing namespace std;int N,M;int father[1005];int find(int x){ if(x == father[x]) return x; else return father[x] = find(father[x]);}int main(){ while(scanf("%d",&N)原创 2016-12-23 16:14:52 · 373 阅读 · 0 评论 -
HDU 2112 迪杰斯特拉最短路算法
题目 HDU 2112迪杰斯特拉最短路 实际上就是优先队列的广搜,每次提取队列中距离最小的进行搜索AC代码如下,用了 map set 处理字符串很方便#include#include#include#include#include#include#includeusing namespace std;const int maxn = 166;int d[maxn];原创 2016-12-22 10:52:52 · 503 阅读 · 0 评论 -
exgcd解系
A,B,C是整数Ax+By=C若C|gcd(a,b),则有解exgcd得出一组解(x0,y0)则解系 x=x0-(a/gcd(a,b))*t y=y0+(b/gcd(a,b))*t原创 2017-10-19 20:58:35 · 281 阅读 · 0 评论