题目链接:http://codeforces.com/contest/688/problem/E

题解:设dp[s1][s2]表示s1状态下出现s2是否合理。那么s1显然可以更具01背包来得到状态。首先看一下转移方程

if(dp[i-a[k]][j]) => (1)dp[i][j]=dp[i-a[k]][j], (2)dp[i][j+a[k]]=dp[i-a[k]][j]

解释(1),(2) 怎么得到的:当i-a[k]的状态存在那么显然可以推到i这个状态,那么j这个状态要么加上a[k]要么不加a[k]

所以就有了这两个状态。

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int a[510] , num[510] , dp[510][510];
int main() {int n , k;scanf("%d%d" , &n , &k);for(int i = 0 ; i < n ; i++) {scanf("%d" , &a[i]);}dp[0][0] = 1;for(int i = 0 ; i < n ; i++) {for(int j = k ; j >= a[i] ; j--) {for(int l = j - a[i] ; l >= 0 ; l--) {if(dp[j - a[i]][l]) dp[j][l] = dp[j - a[i]][l] , dp[j][l + a[i]] = dp[j - a[i]][l];}}}int cnt = 0;for(int i = 0 ; i <= k ; i++) {if(dp[k][i]) num[i]++ , cnt++;}printf("%d\n" , cnt);for(int i = 0 ; i <= k ; i++) {if(num[i]) printf("%d " , i);}return 0;
}

转载于:https://www.cnblogs.com/TnT2333333/p/7282684.html

codeforces 688 E. The Values You Can Make(01背包+思维)相关推荐

  1. Codeforces Round #383 (Div. 2) D. Arpa's weak amphitheater and Mehrdad's valuable Hoses —— DP(01背包)

    题目链接:http://codeforces.com/contest/742/problem/D D. Arpa's weak amphitheater and Mehrdad's valuable ...

  2. codeforces 842 D. Vitya and Strange Lesson(01字典树+思维+贪心)

    题目链接:http://codeforces.com/contest/842/problem/D 题解:像这种求一段异或什么的都可以考虑用字典树而且mex显然可以利用贪心+01字典树,和线段树差不多就 ...

  3. Codeforces Round #586 (Div. 1 + Div. 2) B. Multiplication Table 思维 + 公式

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗nn*nn∗n的矩阵,每个位置由ai∗aja_i*a_jai​∗aj​得来,主对角线为000,让你求出来aia_iai​. n≤1e3n\le1e ...

  4. Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维

    传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右. n≤1e5,ai≤1 ...

  5. Codeforces Round #588 (Div. 2) D. Marcin and Training Camp 思维

    传送门 文章目录 题意: 思路: 题意: 有nnn个人,每个人都有一个能力值bib_ibi​以及他会的技能aia_iai​,当他会第xxx个技能的时候,aia_iai​的第xxx位是111.定义当xx ...

  6. Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维

    传送门 文章目录 题意: 思路: 题意: 初始有左右手,上面各有一个数字为000的卡牌,每次都有一个新卡kik_iki​,你可以将其放在左手或者右手,使两只手上的卡片范围在[ll,i,rl,i][l_ ...

  7. Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest 思维 + 差分

    传送门 文章目录 题意: 思路: 题意: 给你三个长度分别为k1,k2,k3k1,k2,k3k1,k2,k3的数组a,b,ca,b,ca,b,c,其中k1+k2+k3=nk1+k2+k3=nk1+k2 ...

  8. Codeforces Round #715 (Div. 1) C. Complete the MST 补图 + 思维 + 最小生成树

    传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm个边的图,mmm条边是给定的,要求你给未给定的边赋值一个边权,使得所有边权异或和为000,求所有满足这种情况的图中最小生成树边权和最小的 ...

  9. Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给定一个长度为nnn的序列aaa,定义一段区间为好区间是这段区间的所有连续子区间的和都不为000,求好区间的个数. 思路: 套路题,定义aia_iai​的前缀 ...

最新文章

  1. BestCoder Round #65 B C D || HDU 5591 5592 5593
  2. 基于OpenCV的图像分割处理!
  3. 详解python2 和 python3的区别
  4. 十周后,62%的PHP网站将运行在一个不受支持的PHP版本上
  5. 转载:工程师笔记|STM32F030在低温下无法启动
  6. 论文浅尝 - AAAI2020 | 小样本知识图谱补全
  7. LeetCode 669. Trim a Binary Search Tree
  8. SQLServer批量倒入目录文件
  9. 面试官:Spring该选择哪个构造方法来进行实例化?画重点要考的
  10. 科蒂斯控制器故障代码_卡特挖掘机故障代码【收藏备用】
  11. 华为 5G 折叠屏手机获入网许可;苹果召回部分 MacBook Pro;Oracle Linux 8.0 发布 | 极客头条...
  12. 向园子里的朋友探讨一个问题:如果判定一个对象已被处置
  13. 关于大小端转换整理总结(包含原始方式、Qt方式)
  14. Emmagee 2.5 在MUMU模拟器上启动后直接失败,换成夜神模拟器可以正常使用
  15. 谈一谈CloudBlog的系统架构
  16. 蓝牙扫描startLeScan测试
  17. Android中framework层下添加aidl编译说程序包不存在
  18. php 通配符删除文件,如何使用通配符删除文件夹?
  19. 是非人生 — 一个菜鸟程序员的5年职场路 第14节
  20. VectorMapNet | 端到端的矢量化高精地图学习

热门文章

  1. Python 使用requests发送POST请求
  2. shell常用的命令
  3. 苹果数据线不能充电_20亿个不能用的苹果充电器,库克,你的这波强制“环保”翻车了...
  4. c++ signal 信号退出
  5. 【算法】马踏棋盘算法 骑士走周游算法
  6. 【算法】删去k个数字后的最小值
  7. 95-10-200-启动-结尾
  8. 【Flink】Flink状态的缩放(rescale)与键组(Key Group)设计
  9. 95-50-040-java.nio.channels-NIO-NIO之Buffer(缓冲区)
  10. 【面试题】序列化的 10 几个问题