
白书1
高自期许
欢迎大家找我交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 1192 食物链(并查集)
食物链Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 111364 Accepted: 33824Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种...原创 2019-12-11 13:43:43 · 207 阅读 · 0 评论 -
多重集组合数
有n种物品、第i种物品有ai种。不同种类的物品可以互相区分但相同种类的无法区分。从这些物品中取出m个的话、有多少种取法?求出方案数模M的取法。将dp[i + 1][j]定义为从前i种物品中取出j个的组合总数#include <bits/stdc++.h>using namespace std;int a[1001], dp[1001][1001];int main(){...原创 2019-12-02 20:42:04 · 354 阅读 · 0 评论 -
划分数
有n个无区别的物品、将它们划分成不超过m组,求出划分方法数模M的余数分析:将dp[i][j] 定义为j的i划分、即将j划分为不超过i组则dp[i][j] = dp[i ][j-i] + dp[i - 1][j];即将j划分为不超过i组的数量等于i组中没有空的情况+i组中有一个空的情况!题解:#include <iostream>using namespace std;i...原创 2019-12-02 16:17:07 · 235 阅读 · 0 评论 -
最长上升子序列
求一个序列的最长上升子序列#include <bits/stdc++.h>using namespace std;int dp[1001], arr[1001], n;int main(){ cin >> n; fill(dp, dp + n + 1, 0xfffffff); for (int i = 0; i < n; ++i)cin >&...原创 2019-12-01 21:16:47 · 107 阅读 · 0 评论 -
多重部分和问题
有n种大小不同的数字ai、每种各mi个、判断是否可以从这些数字之中选出若干使它们的和恰好为Kdp[i + 1][j]表示前i种数字是否能加成j为了用前i种数字加成j、也就需要满足前i-1种数字加和成j, j-ai, j-2ai…j-mi*ai中的一种、由此、我们得到关系式#include <bits/stdc++.h>using namespace std;int n, k...原创 2019-11-29 19:16:09 · 207 阅读 · 0 评论 -
01背包问题之2(大规模数据的情况)
有n个重量和价值分别为wi, vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值的最大值与前面唯一不同的地方便是W达到了10 ^ 9、wi到达1了10 ^ 7;变换思路:定义dp[i+1][j]为前i个物品中挑选出价值总和为j时总重量的最小值(不存在时就是一个充分大的数INF)。因为前0个物品什么也选择不了、故dp[0][0] = 0;dp[0][j]=INF;此...原创 2019-11-29 17:10:01 · 1153 阅读 · 0 评论 -
2.3.2 完全背包问题
有n种重量和价值分别为wi,vi的物品、从这些物品挑选总重不超过W的物品,求挑出物品价值总和的最大值。相比01背包,这里唯一不同的就是每件物品都有无数件#include <bits/stdc++.h>using namespace std;int n, W;int w[100], v[100];int dp[100][10000];int main(){ cin ...原创 2019-11-26 19:22:08 · 157 阅读 · 0 评论 -
白书2.3.1 最长公共子序列
求两字符串的最长公共子序列#include <bits/stdc++.h>using namespace std;int dp[100][100];int main(){ string a, b; cin >> a >> b; for (int i = 0; i < a.length(); ++i){ for (int j = 0;...原创 2019-11-26 14:44:43 · 172 阅读 · 0 评论 -
白书2.3.1 01背包问题动态规划
有n个重量和价值分别为wi, vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值的最大值这是01的背包的问题最终形态,从递归思考过来的话应该不难理解#include <bits/stdc++.h>using namespace std;int n, W;int w[100], v[100], dp[100][10000];int main(){...原创 2019-11-25 22:14:06 · 148 阅读 · 0 评论 -
白书2.3.1 01背包问题递归+记忆化数组
有n个重量和价值分别为wi, vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值的最大值#include <bits/stdc++.h>using namespace std;int n, W;int w[100], v[100], dp[100][10000];int rec(int i, int j){ if (dp[i][j] != -1)...原创 2019-11-25 21:55:25 · 167 阅读 · 0 评论 -
白书2.3.1 01背包问题的递归解决方法
有n个重量和价值分别为wi, vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值的最大值ps:递归版01背包是背包问题中最初级的解法、01背包从这里入手!#include <bits/stdc++.h>using namespace std; int N, W;int w[100], v[100];int rec(int i, int j){ ...原创 2019-11-25 16:26:43 · 190 阅读 · 0 评论 -
白书2.2.3 Best Cow Line
#include <iostream>#include <vector>using namespace std;int main(){ int n; scanf("%d", &n); string arr; cin >> arr; int l = 0, r = n - 1; while (l <= r){ bool lef...原创 2019-11-05 09:46:13 · 140 阅读 · 0 评论 -
白书2.2.2 区间调度问题
区间调度每次选最早结束的任务可选的数量最多#include <bits/stdc++.h>using namespace std;struct dis{ int s, t;};bool cmp(dis a, dis b){ return a.t < b.t;}int main(){ int n, cnt = 1; cin >> n;...原创 2019-11-05 09:08:04 · 162 阅读 · 0 评论 -
白书 2.2.1 硬币问题
#include <bits/stdc++.h>using namespace std;int main(){ int a[6], sum, x = 5, cnt = 0, money[6] = {1, 5, 10, 50, 100, 500}; for (int i = 0; i < 6; ++i)scanf("%d", &a[i]); scanf("%d...原创 2019-11-05 08:03:15 · 135 阅读 · 0 评论 -
白书2.1.5 迷宫的最短路径
#include <bits/stdc++.h>using namespace std;char maze[100][100];int sx, sy, ex, ey, n, m;int d[100][100], dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1};void bfs(){ memset(d, 0x3f3f3f3f, ...原创 2019-11-04 19:14:52 · 204 阅读 · 0 评论 -
白书2.1.4 Lake Counting
格外注意行末换行符的处理#include <iostream>#include <cstdio>using namespace std;int n, m;char maze[101][101];int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1};int dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};v...原创 2019-11-04 18:25:11 · 115 阅读 · 0 评论 -
部分和问题
很经典的深度搜索#include <bits/stdc++.h>using namespace std;int n, k, arr[50];bool book[50];bool dfs(int x, int sum){ if (sum == k)return true; if (x == n)return false; bool flag = false; if...原创 2019-11-04 13:33:58 · 118 阅读 · 0 评论