HDU 1520题目传送门代码:#include<bits/stdc++.h>using namespace std;const int maxn=6000+100;struct Edge{ int to,next;}edge[maxn];int head[maxn],tot;int dp[maxn][2],in[maxn];void DFS(int u){ fo
原创
2022-11-09 18:40:31
84阅读
题目描述在寂寞的夜里,星象仪是非常浪漫的东西。但是,你作为一个精神稍微有点不太正常的Geek,把原本正常的星象仪改造得像电报发送器一样。当然,你这个的构造还要更加奇葩一点。具体来说,你的星象仪是一棵满二叉树,二叉树的节点都是有两个输入端和一个输出端的AND门或者OR门。它们输入和输出的信号都是只是0或者1。它们会接受子节点的输出信号,然后将这两个信号进行AND运算或者OR运算作为自己的输出。然后,根节点的输出信号就是整个星象仪的输出信号。叶节点的输入信号是由你来调整的,如果二叉树有K层,那么你显然有2K个输入信号可以调整。调整一次当然只能改变一个输入信号。根据你的设定,在一开始所有的输入端的输
转载
2013-10-30 22:53:00
44阅读
2评论
题意: 给出一些事件的开始时间和持续时间,你必须在开始时间前做这件事,做完才能做别的,每件事有固定的报酬,询问怎么安排报酬最大。 题解: 可以写出DP方程: 这里的mmax表示这个事件开始时间之前所能达到的最大报酬。 dp[ed]=max(dp[ed],mmax+Node[i].w); 然后从1到N
转载
2020-05-16 00:36:00
81阅读
2评论
树状dp,顾名思义,给出一棵树并对其赋予权值(或边权或点权),在树上进行动态规划。 其基本思路是从根节点开始进行记忆化搜索,或是从叶子节点开始自下而上正向推进。 NC22598 题目中要求所有度为1的点都不能到达关键点\(S\),那么问题可以转述成“对于一棵以\(S\)点位根节点的树,所有的叶子节点 ...
转载
2021-10-02 18:36:00
224阅读
2评论
传送门f[i][j] 表示1--i 选j个的情况 先离散化 , 然后开n个树状数组分别维护 f[][j] #include<bits/stdc++.h>#define N 1005#define Mod 1000000007#define LL long longusing namespace std;int T,n,m,a[N],b[N];LL f[N]
原创
2022-07-05 10:28:19
61阅读
Find the nondecreasing subsequences Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1844 Accepte
原创
2021-07-21 15:40:51
100阅读
Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 464 Accepted Submission(s): 2
原创
2021-07-21 16:09:54
133阅读
题目链接:点击打开链接题解思路:一开始绞尽脑汁怎么正向解决这个问题,就是定义一个优先级然后看每个节点在优先级的情况下的贡献点是多少,发现好难做啊。看了别人的博客之后发现反向思考原来简单的多。假设这颗树的所以不用颜色有sums种,那么我们假设每种颜色对每个路径都有贡献那么答案应该就是(所以路径数*颜色数)- (所以颜色没有参与贡献的总和)。那么我们用sum数组保存,sum【i】表示i颜色能参与到贡献
原创
2023-05-31 09:37:56
38阅读
题目描述 约翰家的 N 头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负。 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几个小组,每个抗议小组的理 智度之和必须大于或等于零。奶牛的队伍已经固定了前后顺序,所以不能交换它们的
转载
2017-06-20 13:25:00
65阅读
2评论
Counting SequencesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Others)Problem Descu
原创
2023-05-29 23:59:28
55阅读
https://vjudge.net/problem/UVA-12186#include <cstdio>#include <cstring>#include <iostream>#include <cmath>#include <algorithm>#include <sstream>#include <string>#include <vector>using namespace
原创
2021-07-06 15:16:26
92阅读
题目思路用树状数组优化即可代码#include<bits/stdc++.h>using namespace std;const int N=1e5+77;int n,m,aii,a[4][N],f[4][N],yjy[4][N<<2],b[N<<2];int main(){ freopen("sequence.in","r",stdin); freopen("sequence.out","w",stdout); scanf("%d",&n
原创
2021-07-13 11:04:28
81阅读
这题说的是给了一个序列长度为n 然后求这个序列的严格递增序列长度是m的方案有多少种,如果用dp做那么对于状态有dp[n][m]=dp[10000][100],时间复杂度为n*m*n接受不了那么想想是否可以再这个上加些什么样的优化。树状数组 对于每个值离散在树状数组中然后对于每个点都有以他为结尾点的递...
原创
2021-07-28 11:51:41
95阅读
Find the nondecreasing subsequencesTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Pr
原创
2023-05-29 23:59:34
69阅读
Ordered SubsequenceTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem DescriptionA numeric
原创
2023-05-29 23:59:40
45阅读
hdu5125 他说的是n个人每个人都有两个气球a,b,气球各自都有相应的体积,现在让他们按照序号排列好来,对他们的a气球体积值计算最长上升子序列,对于这整个排列来说有m次机会让你将a气球替换成b气球(允许不使用完),问最后的最长上升子序列的长度是多少,哈哈,当然用dp的思想我们很容易就能知道状态的...
原创
2021-07-28 11:53:56
86阅读
2015-10-0621:49:54这题说的是个给了一个数组,然后删除任意起点的一个连续的L个数,然后求最长递增子序列《是递增,不是非递减》,用一个树状数组维护一下就ok了#include #include #include #include #include using namespace std...
原创
2021-07-28 11:56:02
73阅读
题意:给出n个数字的序列,然后q次和自己相同的数字的个数之和。思路出自 http
原创
2023-06-29 00:02:25
61阅读
E. Pencils and Boxestime limit per test2 secondsmemory li
原创
2022-08-10 20:43:11
90阅读