1759:最长上升子序列 题目: 总时间限制: 2000ms 内存限制: 65536kB 描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的.对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N.比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7…
洛谷题目链接 题目赋值出来格式有问题,所以我就只放题目链接了 下面为ac代码 #include<bits/stdc++.h> #define ll long long using namespace std; +; ll a[maxn];//存放输入的数据 ll f[maxn];//用来递推 int main() { ll n; cin>>n; ;i<=n;i++) scanf("%lld",&a[i]);//输入数据 ;i<=n;i++)…
[bzoj1806][Ioi2007]Miners 矿工配餐 2014年7月10日1,7870 Description 现有两个煤矿,每个煤矿都雇用一组矿工.采煤工作很辛苦,所以矿工们需要良好饮食.每当一辆食品车到达煤矿时,矿工们便会产出一定数量的煤.有三种类型的食品车:肉车,鱼车和面包车. 矿工们喜欢变化的食谱.如果提供的食品能够不断变化,他们的产煤量将会增加.每当一个新的食品车到达煤矿时,矿工们就会比较这种新的食品和前两次(或者少于两次,如果前面运送食品的次数不足两次)的食品,并且: • 如…
题目链接: 普通版: https://www.luogu.org/problemnew/show/P1028 数据加强版: https://www.luogu.org/problemnew/show/P2240 中间插一段,奇怪了,我明明想到的是最好的那种递推方法,结果写着写着忘记了,写成最差的递推方法 所以中间插一段被我遗忘的好方法 这个也是这题的书上的答案 #include<bits/stdc++.h> using namespace std; ]; int main() { int n;…
题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace std; ],zhu[],t[]; struct student { int s; int number; ]; }f[][]; int main() { std::ios::sync_with_stdio(false); int m,v,n;//m总重量,v总阻力,n物品数 cin>>m>…
题目链接:P2347 砝码称重 参考题解:点击进入 纪念我第一道没理解题意的题 ''但不包括一个砝码也不用的情况'',这句话我看成了每个砝码起码放一个 然后就做不出来了 思路: 1.这题数据很小,1000,所以其实没必要把多重背包用二进制优化成01背包,直接一个个拆开就好了 2.建立数组f[2000],用来f[j]=1表示存在重量为j这种可能,f[j]=0则表示不存在这种可能 建立数组a[2000],用来把多重背包一个个拆开 比如说我们输入的是 0 0 那a就是{,} 数组f其实是用了"桶&qu…
题目链接:P1006 传纸条 PS:伤心,又想不出来,看了大神的题解 AC代码: #include<bits/stdc++.h> #define ll long long using namespace std; ll n,m,f[][],a[][]; int main() { ll i,j,k; cin>>n>>m; ;i<=n;++i) ;j<=m;++j) cin>>a[i][j]; f[][]=a[][]+a[][];//不管怎样都会经过…
先上题目: P1004 方格取数 下面上ac代码: ///如果先走第一个再走第二个不可控因素太多 #include<bits/stdc++.h> #define ll long long using namespace std; ll f[][][][]; ll a[][]; int main() { ios::sync_with_stdio(false); ll n,xx,yy,zz; cin>>n; &&!(xx==&&yy==&&…
题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ll long long using namespace std; ll num[+]; ll p[]; ll f[][][][]; int main() { ios::sync_with_stdio(false); ll n,m;//n格子数,m牌数 cin>>n>>m; ;i<…
有n张牌,求出至少有k张牌连续是正面的排列的种数.(1=<k<=n<=100) Toss is an important part of any event. When everything becomes equal toss is the ultimate decider. Normally a fair coin is used for Toss. A coin has two sides head(H) and tail(T). Superstition may work in…