题意:有权值分别为1,2,3,4,5,6的大理石,每种都有若干块,能否把它们分成权值相等的2份。大理石的总数量不超过20000。(多重背包) 分析:判断dp[ V/2 ] ==V/2 即可,但过程如果用普通做法会超时,即多重背包当成01背包做效率很低,这时候要用二进制拆分优化,将复杂度变为 二进制拆 ...
分类:
其他好文 时间:
2019-08-27 00:42:25
阅读次数:
93
Problem Description Marsha和Bill收藏了一些大理石。他们想要把这些大理石平均分配给两个人。如果大理石的价值一样,这将很容易做到,因为他们可以简单的对半分。不幸的是,一些大理石比其他的更大或者更漂亮。因此Marsha和Bill给每个大理石都规定了一个价值,它是一个1~6之间 ...
分类:
其他好文 时间:
2018-08-19 10:55:45
阅读次数:
123
#include #include #include using namespace std; int T,A[10]; bool f[100010]; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch'9'){if(ch=='-'... ...
分类:
其他好文 时间:
2018-08-08 21:20:39
阅读次数:
198
转自https://www.luogu.org/blog/cccx2016/dp50 ti ti hao dp50题: poj1014 poj1015 poj1018 poj1036 poj1038 poj1050 poj1088 poj1093 poj1156 poj1157 poj1159 po ...
分类:
其他好文 时间:
2018-08-04 16:17:34
阅读次数:
146
有价值为1~6的宝物各num[i]个,求能否分成价值相等的两部分。 #include <iostream> #include <cstring> #include <string> #include <cstdio> #include <cmath> #include <algorithm> #in ...
分类:
其他好文 时间:
2017-07-03 16:21:11
阅读次数:
96
#include int n[6]; int main() { freopen("in.txt","r",stdin); int a=0; while(1) { for(int i=0;i=0;i--) { if(c>b) { b+=n[i]*(i+1); } else { c+=n[i]*(i+1... ...
分类:
其他好文 时间:
2017-01-03 16:36:53
阅读次数:
152
题目在此:http://poj.org/problem?id=1014 要看清题意呢,题中要求输入的是价值分别为1,2,3,4,5,6的大理石的个数,而不是6块价值为输入数字的大理石!选这个题主要想练习一下深搜。在网上看到了一段代码,深搜时使用了贪心算法虽然可以AC但是有很大的漏洞: 如测试数据(0 ...
分类:
其他好文 时间:
2016-08-03 23:42:13
阅读次数:
230
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://poj.org/problem?id=1014 Description Marsha and Bill own a collection of marbles. They want to spli ...
分类:
其他好文 时间:
2016-03-26 17:05:09
阅读次数:
143
DividingTime Limit:1000MSMemory Limit:10000KTotal Submissions:65044Accepted:16884DescriptionMarsha and Bill own a collection of marbles. They want to ...
分类:
其他好文 时间:
2015-12-07 00:12:40
阅读次数:
203
方法同POJ1014-Dividing,唯一不同点在于每一种block有最大限定高度a,故要以a为关键字进行排序,使得最大高度小的在前,否则最大高度小的再后可能放不上去。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using.....
分类:
其他好文 时间:
2015-06-28 20:04:30
阅读次数:
105