算法进阶指南
wtcl
这个作者很懒,什么都没留下…
展开
-
递归实现排列型枚举
#include<cstdio>#include<iostream>#include<cstring>#include<vector>using namespace std;#define ll long longint n;vector<int> path;void dfs( int u,int state){ if...原创 2019-11-25 00:26:25 · 97 阅读 · 0 评论 -
递归实现组合数枚举
#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint n,m;int lowbit(int x){ return x&(-x);}int cal(int n){ int c=0; ...原创 2019-11-25 00:14:32 · 161 阅读 · 0 评论 -
递归实现组合型枚举
#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint n;void dfs( int u,int state){ if(u==n) { for(int i=0;i<n;i++) { if(s...原创 2019-11-24 23:48:34 · 80 阅读 · 0 评论 -
最短哈密顿路
状压dp(位运算应用)#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint map[30][30];int dp[1<<21][21];int main(){ int n; cin&...原创 2019-11-24 23:41:30 · 216 阅读 · 0 评论 -
快速幂
#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint main(){ ll a,b,p; cin>>a>>b>>p; ll s=1; while(b) { if(b&...原创 2019-11-24 23:10:59 · 47 阅读 · 0 评论 -
生日蛋糕 POJ1190
确定搜索状态:第几层当前体积当前表面积上一层高度和半径(可以用数组存)#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<cmath>using namespace std;int N,m;int ans=0x...原创 2019-11-23 00:19:57 · 128 阅读 · 0 评论 -
Sticks POJ - 1011
暴搜+剪枝错误做法(类似于小猫爬山):确定搜索状态:当前已经分配好的小木棍当前的木棒个数每个木棒的长度#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int cnt[70];int a[70];in...原创 2019-11-21 22:18:18 · 67 阅读 · 0 评论 -
Sudoku POJ - 3074
dfs#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N=9;int ones[1<<N],map[1<<N];int row[N],col[N],cell[3][3];char str[100]; in...原创 2019-11-21 14:44:44 · 101 阅读 · 0 评论 -
小猫爬山
1≤N≤18, n很小,可以考虑暴搜1≤Ci≤W≤108 很像一个背包问题但w很大#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cstring>#define ll long longusing name...原创 2019-11-21 13:26:25 · 136 阅读 · 0 评论 -
可达性统计
bitset topsort#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<bitset>#include<queue>using namespace std;int deg[30010];int...原创 2019-11-21 12:47:34 · 131 阅读 · 0 评论 -
环路运输
环形 单调队列#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;#define ll long long int num[2000010];int q[2000010];int main(){ i...原创 2019-11-17 00:29:05 · 157 阅读 · 0 评论 -
Naptime POJ - 2228
环形dp分为两种情况:N休息 N不休息#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define inf 0x3f3f3f3fusing namespace std;int num[4010];int dp1[2][4100][2];...原创 2019-11-16 21:46:49 · 129 阅读 · 0 评论 -
选课
有依赖的背包问题(树形dp+分组背包)#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;int num[310],deg[310];int h[310],ver[310],ne[310],cnt=0;int...原创 2019-11-16 14:19:12 · 92 阅读 · 0 评论 -
Sightseeing trip POJ - 1734
floyd变形 求最小环将结果看成一个集合:有编号最大为k的节点组成的环(1<=k<=n)#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>using namespace std;#defi...原创 2019-11-14 23:37:29 · 64 阅读 · 0 评论 -
Sorting It All Out POJ - 1094
1.floyd 求传递闭包#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;int d[30][30];int g[30][30];int n,m;int st[30];int check(){ f...原创 2019-11-14 22:13:14 · 91 阅读 · 0 评论 -
道路与航线
1.dij与topsort2.有多个队列时注意变量#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<algorithm>using namespace std;int head[50010],ne[200010],ver[2...原创 2019-11-14 12:08:08 · 153 阅读 · 0 评论 -
Mr. Young's Picture Permutations POJ - 2279
题目大意:给出不超过5的k,有k行学生,当前行人数不超过后一行,每行学生有 ni 个,其中这些学生身高各不相同。要求每一排从左到右身高递减,每一列从后到前身高递减。设F[a1][a2][a3][a4][a5]表示各排从左边分别站了a1,a2,a3,a4,a5人时的方案数。则可得转移方程。其中我们可以发现,设计动态规划的转移方程,不一定要以如何计算出一个状态的形式给出,也可以考虑一个已知...原创 2019-10-27 15:02:33 · 99 阅读 · 0 评论