嗯。

嗯。

ZOJ 3557 How Many Sets II lucas 定理

插空法 大组合数取余 #include #include using namespace std; typedef long long LL; //求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b) void gcd(LL a, LL b, LL& ...

2014-09-29 17:13:10

阅读数 957

评论数 0

HDU 3966 Aragorn's Story 树链剖分

入门题 #include #include #include using namespace std; const int maxn = 50010; struct edge { int v, next; }e[maxn*2]; int n, m, q; int first[maxn]...

2014-09-29 16:11:49

阅读数 920

评论数 2

HDU 3037 Saving Beans 大组合数 lucas定理

直接lucas降到10w以内搞组合数 #include #include typedef __int64 LL; LL f[110010]; LL pow(LL a, LL b, LL c) { LL ans = 1; while(b) { if(b&1) ans = ...

2014-09-28 19:41:36

阅读数 755

评论数 0

HDU 3625 Examining the Rooms 第一类斯特林数

最多可以暴力打开k次 对于一个环暴力一次 n个数排成i个(i #include #include using namespace std; typedef __int64 LL; LL dp[22][22]; LL f[22]; int main() { dp[0][0] = 1; f[0...

2014-09-28 14:53:44

阅读数 796

评论数 0

Light OJ 1236 Race 第二类斯特林数

第二类斯特林数 n 匹马 分成1 2 3... n组 每一组就是相同排名 没有先后 然后组与组之间是有顺序的 在乘以组数的阶乘 #include #include using namespace std; int dp[1010][1010]; int a[1010]; int main() ...

2014-09-27 22:38:30

阅读数 1460

评论数 0

SGU 108. Self-numbers 2 离线+位优化

可以像筛选法那样标记 但是内存最多只能开1024的int数组 我用了位优化 用一个int 32 位标记32个数字 接下来就离线 排个序 算出第k大的哪个数 #include #include #include using namespace std; int a[10000000/32];...

2014-09-26 13:49:20

阅读数 868

评论数 0

SGU 106. The equation 扩展欧几里德

求解的个数 对应ax+by=c 根据裴蜀定理c%gcd(a, b) == 0有解 假设d = gcd(a, b) 用扩展欧几里德求出方程aax+bb*y=cc 的解x0 y0 那么原方程的一个解就是x0*c/d和y0*c/d 通解为  x = x0+i*b/d y = y0+i*a/d 分别讲x1...

2014-09-24 20:31:32

阅读数 871

评论数 0

SGU 103. Traffic Lights 带限制最短路

每个点有2中颜色 只有一条路上的两个点颜色一样才能通过这条路 最短路加上等待的时间处理 处理的是参考别人的 唉还是太弱了 #include #include #include #include #include using namespace std; int s, e; int n, ...

2014-09-23 23:51:25

阅读数 947

评论数 0

二维线段树模版

HDU 4819 二维线段树模版题 #include #include #include using namespace std; const int INF = 999999999; const int maxn = 810; int a[maxn][maxn]; int st_min[...

2014-09-22 19:55:47

阅读数 1344

评论数 0

SGU 101. Domino 欧拉回路

无向图欧拉回路 欧拉通路 #include #include using namespace std; struct edge { int v, next, b, id; }e[210]; int vis[210]; int first[10], cnt; int ans[210], le...

2014-09-22 10:08:18

阅读数 839

评论数 0

SGU 199. Beautiful People 二维LIS

第一维排序 第二维LIS #include #include #include using namespace std; int dp[100010]; int p[100010]; struct node { int x, y, id; }a[100010]; bool cmp(...

2014-09-21 22:58:22

阅读数 1260

评论数 0

求原根模版

#include #include using namespace std; typedef long long LL; int p[100000], c; LL pow_mod(LL a, LL x, LL m) { LL ans = 1; while(x) { if(x&am...

2014-09-20 21:37:18

阅读数 1611

评论数 0

URAL 1268. Little Chu 求最大原根

题目来源:URAL 1268. Little Chu 题意:输入n 求一个最大的k 使得k^1 k^2 k^3...k^x mod n 后各不相同 思路:mod n 后各不相同 最多有 n个 那么此事k就是原根 因为k #include #include using namespace st...

2014-09-20 21:36:40

阅读数 1008

评论数 0

HDU 2894 DeBruijin 兹鼓欧拉回路

题目来源:HDU 2894 DeBruijin 题意: 思路: #include #include using namespace std; int vis[5000], ans[5000]; int len, n; void dfs(int u) { int v = ((u<&l...

2014-09-11 16:55:42

阅读数 1416

评论数 0

欧拉回路模版

#include #include #include using namespace std; const int maxm = 40010; const int maxn = 1010; int first[maxn], cnt; struct edge { int u, v, next...

2014-09-10 22:11:07

阅读数 907

评论数 0

splay树模版

#include #include using namespace std; typedef long long LL; const int maxn = 100010; int pre[maxn], ch[maxn][2], sz[maxn]; int root, top1; int s[m...

2014-09-03 14:38:04

阅读数 853

评论数 0

URAL 1439. Battle with You-Know-Who treap树

题目来源:URAL 1439. Battle with You-Know-Who 题意:开始有数列1, 2, 3, ... L k输出第k大的数 D k删除第k大的数 思路:treap树插入删除的数 每次二分查找第k大的数为mid 查询treap小于等于mid的数有y个 那么mid应该是第mid-...

2014-09-02 14:28:03

阅读数 961

评论数 0

HDU 3726 Graph and Queries treap树

题目来源:HDU 3726 Graph and Queries 题意:见白书 思路:刚学treap 参考白皮书 #include #include #include using namespace std; struct Node { Node *ch[2]; int r; int ...

2014-09-01 20:50:14

阅读数 1192

评论数 0

提示
确定要删除当前文章?
取消 删除