codeforces 510D 01背包的map形式
来源:互联网 发布:了解茶的软件 编辑:程序博客网 时间:2024/05/21 09:28
从一些数字重选择出x个数字,让他们的gcd == 1并且让,选择这些数字的代价最小。
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <map>#define MAX 307using namespace std;typedef pair<int,int> PII;typedef map<int,int> MII;int n;MII dp;PII a[MAX];int gcd ( int a , int b ){ return !b?a:gcd ( b , a%b );}int main ( ){ while ( ~scanf ("%d" , &n ) ) { for ( int i = 0 ; i < n ; i++ ) scanf ( "%d" , &a[i].first ); for ( int i = 0 ; i < n ; i++ ) scanf ( "%d" , &a[i].second ); dp.clear(); MII::iterator it; dp[0] = 0; // 背包问题的另一种思路 for ( int i = 0; i < n ; i++ ) { int x = a[i].first; int c = a[i].second; for (it = dp.begin(); it != dp.end(); it++) { int y = it->first; int d = gcd(x, y); int temp = it->second+c; if (dp[d] && dp[d] < temp) continue; dp[d] = temp; } } if ( !dp[1] ) puts ( "-1" ); else printf ( "%d\n" , dp[1] ); }}
0 0
- codeforces 510D 01背包的map形式
- codeforces #118D (背包)
- Codeforces 510D map进行DP
- map--codeforces,519D.
- CodeForces 15D Map
- map形式的遍历
- CodeForces 34D Road Map
- codeforces 660D (STL map)
- CodeForces 15D Map (RMQ)
- Codeforces 34D. Road Map 树的遍历
- Codeforces Round #383 (Div. 2)D-(并查集&分组背包)|(搜索&01背包)
- [背包 贪心] Codeforces #365D. Free Market
- 01背包空间优化的形式(滚动数组)(2955)
- codeforces 34D - Road Map DFS
- Codeforces 15D Map 单调队列+构造
- CodeForces 15D Map 单调队列优化
- CodeForces - 633D Fibonacci-ish (map&暴力)
- codeforces 675D Tree Construction (map)
- java 使用Toolkit获取屏幕长和宽的信息时的一个小陷阱
- Unix is(Uva 400)
- 虚拟机centos添加硬盘和分区挂载
- 一起来学activeMQ 2.activeMQ的搭建,从 java环境开始!
- HDU 5876 Sparse Graph【补图BFS+set】
- codeforces 510D 01背包的map形式
- POJ 2001 Shortest Prefixes 【LCP(Trie)】
- AndEngine电子相册
- 引用
- 星际之门(一)
- Linux下ftp服务的搭建
- LeetCode374. Guess Number Higher or Lower
- Interesting problems
- Mac 键盘快捷键