CodeForces 687C The Values You Can Make】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/687/C 题目大概说给n个各有价值的硬币,要从它们中选出若干个组合成面值k,而要求的是各个方案里这些选出的硬币能组合出来的面值有哪些. dp[i][j][k]表示到第i个硬币,组成面值为j,包含面值为k的方案数. 注意用滚动数组写. //#pragma comment(linker, "/STACK:102400000, 102400000") #include <algorithm&g…
题目大概说给n个各有价值的硬币,要从它们中选出若干个组合成面值k,而要求的是各个方案里这些选出的硬币能组合出来的面值有哪些. 有点绕.. dp[i][j][k]表示前i个硬币中 能否 组合成面值j且选出的硬币能组合成面值k 转移要考虑全面..三个方向转移,第i个不选.第i个选但不参与选出硬币去组合成k.第i个选且参与选出硬币去组成成k #include<cstdio> using namespace std; ][][]; int main(){ int n,K,a; scanf("…
题意:一个数组a[i],你可以挑出若干个数(只能挑一次)加起来等于k, 针对每一种方案,你可以选出这若干个数的子集来组合新数 最后所有的方案能组合出多少种数 分析:一看数据范围n,k<=500 那就是显而易见就是母函数那套了 从1到n,dp[i][j],代表通过前i个元素和为i,能否组合出j #include <cstdio> #include <iostream> #include <ctime> #include <vector> #include…
$dp$,背包. $f[i][j][s]$表示前$i$个物品,凑出$j$价格的情况下,能否凑出$s$价格,$f[i][j][s]=1$表示能,否则不能. 转移很简单:如果$f[i][j][s]=1$,那么$f[i+1][j][s]=1$,$f[i+1][j+c[i]][s]=1$,$f[i+1][j+c[i]][s+c[i]]=1$.最后将$f[n][k][s]=1$的$s$都输出就可以了. $f[500][500][500]$内存会炸,第一维可以用滚动数组优化. #pragma comment…
这个也可以说是一个01背包了,里面也有一些集合的思想在里面,首先dp方程,dp[i][j]代表着当前数值为i,j能否被构成,如果dp[i][j] = 1,那么dp[i+m][j] 和 dp[i+m][j+m] = 1,所以转移方程就写出来了,但是注意我们只能从后向前转移,也就是说我们一定要用选上一个数的状态,因为这里是01背包,每一个数只能选一次,如果正着选就是完全背包了. 代码如下: #include<iostream> #include<cstdio> #include<…
题意:给定 n 个硬币和一个值 k,问你在用一些硬币组成面值为 k的这些硬币还能组成多少种其他面值. 析:如果这样说,由这些硬币能组成多少种不同的面值,那么是不是就很熟悉了,这不就是01背包么,这个题又加了一个限制条件,是用能组成 k 的这些硬币,也是类似的,d[i][j],表示硬币 j 能组成面值 i, 那么如果再加一个硬币x,d[i+x][j]也是可以的,d[i+x][j+x]也是可以的,所以如果d[i][j]成立,那么d[i+x][j],和d[i+x][j+x]也是成立的. 代码如下: #…
题意: 给你n个数,然后让这些数相加组合,然后在这些组合的数里可以再相加组合搞出给定 k,输出这些组合的数. 思路: DP. //在枚举到第i个coin的时,dp[i][j],i 肯定能被a[i]组合, //然后再枚举<=a[i]的部分,dp[i][j]的具体意义就是在coin值是i的时候,能用j去组合. //为了防止重复利用coin,从j枚举到a[i]; //最后dp[k][h]==1的把h塞到容器里去,最后输出. #include <bits/stdc++.h> using name…
/*MySQL - 5.5.47 *************//*!40101 SET NAMES utf8 */; create table `base_area` (    `codeid` mediumint (12),    `parentid` int (12),    `cityName` varchar (180)); insert into `base_area` (`codeid`, `parentid`, `cityName`) values('11','0','北京');i…
采集了一下JD的省市区地区 (非常简单,只是做个记录) 1.建表:account_area   2.进入页面: https://reg.jd.com/reg/company 在浏览器(Firefox)控制台(Firebug)上输入:(其他浏览器的控制台也行) var $cr=$(".copyright"); $cr .empty(); function getAreas3(id){ $.get("https://reg.jd.com/reg/area", { lev…
E - The Values You Can Make Description Pari wants to buy an expensive chocolate from Arya. She has n coins, the value of the i-th coin is ci. The price of the chocolate is k, so Pari will take a subset of her coins with sum equal to k and give it to…