模板
LOI_DawnKing-
还记得年少时的梦吗?像一朵永不凋零的花。
展开
-
程序设计思维 复习大纲
1 程序设计基本常识1.1 关闭cin,cout 同步使用后不能再使用scanf || printf。ios::sync_with_stdio(false);1.2 快速读入void read(int &x) { x = 0; int f = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') f = -1; ch = get原创 2020-06-27 16:27:32 · 484 阅读 · 0 评论 -
Codevs 1792 分解质因数
不知道还有没有更优的算法……虽然我的能过…… 求教QAQ。代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#include <ctime>#define X CLOCKS_PER_SECusing namespace std;typedef long l原创 2016-10-19 16:25:29 · 387 阅读 · 0 评论 -
【NOIP2012】寻宝 模拟
【NOIP2012】寻宝 模拟原来一直都理解错了题意……记录一下每层有多少个有楼梯的房间比如有 3 个房间有楼梯, 需要找到第 4 个房间, 那就相当于找到第 1 个房间通过这样减少模拟次数。代码#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define原创 2016-11-10 07:26:57 · 1521 阅读 · 0 评论 -
Codevs1269 匈牙利游戏 次短路spfa
Codevs1269 匈牙利游戏更新时变为3种情况: 1.最短路更新最短路; 2.最短路不能更新最短路但能更新次短路; 3.次短路更新次短路。思考一下,就显然了。#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>#include <queue>using namespace std;#def原创 2016-11-16 09:39:12 · 504 阅读 · 0 评论 -
【模板】高精度 加减乘 重载法
QAQ原创 2016-09-10 09:24:05 · 616 阅读 · 0 评论 -
Codevs1155 金明的预算方案 ——2006年NOIP全国联赛提高组 变种经典背包dp
Codevs1155 金明的预算方案 ——2006年NOIP全国联赛提高组由于至多有2个附件,直接手动枚举就好了。 dp时:如果当前物品是附件, 跳过如果当前物品时主件 只选这个主件,不选它的附件当这个主件有附件时, 选它和它的第一个主件当这个主件有2个附件时, 选它和它的第二个主件当这个主件有2个附件时, 选它和它的所有附件#include <cstdio>#include <原创 2016-11-01 11:06:06 · 497 阅读 · 0 评论 -
Codevs3269 混合背包 经典背包dp
Codevs3269 混合背包引用 DQS博客 中的话:01背包:倒着for。 完全背包:正着for。 多重背包:拆开做01背包,或者条件满足直接完全背包。代码#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define MAXN (200+20)原创 2016-11-01 20:19:19 · 338 阅读 · 0 评论 -
POJ3259 Wormholes 找负环
题意:问能否从一个点出发回到这个点时花费变少,求负环, 有普通路(正权,双向) 和 虫洞路(负权,单向)给定F(1<=F<=5)组数据,对应与一个farm,每组数据对应一个结果。 对于其中一组数据,给定 N , M , W ,N为点数,M为无向边数(普通路径,通过之后时间前进),W为有向边数(虫洞,通过虫洞之后时间倒退),求每组数据是否存在一条回路能使时间倒退。#include <cstdio>原创 2016-11-15 15:24:16 · 515 阅读 · 0 评论 -
【模板】快速幂
非递归版qer的while#include <iostream>#include <queue>using namespace std;typedef long long LL;LL a, b, k;LL ksm(LL a, LL b, LL k){ LL ans = 1; while(b) { if(b&1) ans = (a原创 2016-09-10 10:57:16 · 342 阅读 · 0 评论 -
小模板2
1.关闭cin,cout 同步ios::sync_with_stdio(false);2.快速读入void read(int &amp;amp;amp;x){ x = 0; int f = 1; char ch = getchar(); while(ch &amp;amp;lt; '0' || ch &amp;amp;gt; '9') { if(ch == '-') f = -1; ch = getchar(); }...原创 2019-01-10 15:56:49 · 193 阅读 · 0 评论 -
扩展欧几里得
保存推导部分:gcd = b*x1 + (a-(a/b)*b)*y1 = b*x1 + a*y1 – (a/b)*b*y1 = a*y1 + b*(x1 – a/b*y1)代码:#include <cstdio>#include <cstring>#include <iostream>#include <queue>using namespace std;int exgcd(原创 2016-10-19 07:14:47 · 281 阅读 · 0 评论 -
Codevs 1102 采药 01背包模板
#include <cstdio>#include <cstring>#include <queue>#include <cstdlib>#include <iostream>using namespace std;#define MAXN (100+10)#define MAXT (1000+10)int c[MAXN], w[MAXN];int dp[MAXN][MAXT];in原创 2016-10-28 10:20:34 · 392 阅读 · 0 评论 -
最短路模板 floyd+dijkstra+spfa
flyodvoid flyod(){ for(int k = 1; k <= V; k ++) for(int i = 1; i <= V; i ++) for(int j = 1; j <= V; j ++) dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);}di原创 2016-10-24 18:25:12 · 431 阅读 · 0 评论 -
【Codevs】1231 最优布线问题 && kruskal模板
rt#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <algorithm>using namespace std;const int MAX_V = 100010;const int MAX_E = 100010;int V, E;int fa[MAX_V];long lo原创 2016-04-23 12:35:50 · 589 阅读 · 0 评论 -
Codevs1154 能量项链 ——2006年NOIP全国联赛提高组 区间dp
Codevs1154 能量项链将环变成一条 2*n 的链, 这样环上不同起点往后就是 区间 i~i+n-1然后区间dp#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define MAXN (100+10)int num[MAXN << 1];int原创 2016-11-03 15:12:30 · 349 阅读 · 0 评论 -
二进制子集生成
方法因为二进制是由0/1 组成的一串数字, 我们可以把 长度为 n 的二进制位中位为 1 的所有位置视为 序列 n 的所有选择的元素位置, 如 1001, 表示长度为 4 的序列中的 第1个元素和第 4 个元素。所以说我们只要遍历一遍 2^n 内的所有二进制数, 就能获得长度为 n 中有 1 的二进制数的所有可能性。比如, 我们求 n == 3 的所有子集, 2^3 == 8(10) == 1000原创 2016-10-13 20:56:11 · 624 阅读 · 0 评论 -
堆 C++实现
以 codevs1076 排序为例;原创 2016-09-26 20:17:37 · 436 阅读 · 0 评论 -
不重复排列的生成
当一个集合中有许多重复的元素,如{2,2,2,2,2} 如何生成不重复的排列? 易知答案只有一个。原创 2016-09-26 15:30:46 · 1068 阅读 · 0 评论 -
线性筛
强行草率的放上代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;const int MAXN = 10000000;int n, cnt = 0;int prime[MAXN];bool vis[MAXN];void solve(){ for原创 2016-10-14 20:44:55 · 286 阅读 · 0 评论 -
Codevs 2185 最长公共上升子序列 LCIS
Codevs 2185 最长公共上升子序列定义状态 dp[i][j] 表示以 a 串的前 i 个字符 b 串的前 j 个字符且以 b[j] 为结尾构成的LCIS的长度。n^3 状态转移方程: dp[i][j]=dp[i−1][j](a[i]!=b[j])dp[i][j] = dp[i-1][j] (a[i] != b[j]) dp[i][j] = max(dp[i-1][k]+1) (1 <原创 2016-11-07 11:04:38 · 429 阅读 · 0 评论 -
Codevs 1315 摆花 ——2012年NOIP全国联赛普及组 dp递推
Codevs 1315 摆花 ——2012年NOIP全国联赛普及组dp[i][j] 表示第 i 种花 放在第 j 个位置的 总方案数。像我这种蒟蒻, 也就抄抄DQS 的题解了。#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define MAXN (11原创 2016-11-07 12:12:03 · 524 阅读 · 0 评论 -
【Codevs】1082 线段树练习 3 && 线段树模板
线段树模板……原创 2016-05-08 10:05:11 · 655 阅读 · 0 评论