USACO 4.1 Beef McNuggets
2013-04-24 07:27
381 查看
普通背包,注意两种特殊情况,并且判断的边界不用很大;
特殊情况:
1、有1,全都可以实现,输出0;
2、有无数情况不可实现,输出0;
关于情况2:
可以算所有的数的最大公约数。如果不是1,也就是说这些数不互质,那么不被这个最大公约数整除的数一定构造不出来。
关于边界:
最初写的时候只知道不用很大,用的100000,过了;
看过题解以后才知道判断 256^2 就可以了;
/*
ID : lancelo2
PROG : nuggets
LANG : C++
*/
#include <fstream>
#define MAXN 65536
using namespace std;
bool vis[MAXN+1];
int numbers[11];
int gcd(int v1, int v2)
{
while(v2){
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
int main()
{
ifstream fin("nuggets.in");
ofstream fout("nuggets.out");
int N;
fin >> N;
for(int i = 1; i <= N; i++)
fin >> numbers[i];
int answer = 0;
vis[0] = 1;
if(N == 1){
fout << "0" << endl;
return 0;
}
int gcdnumber = numbers[1];
for(int i = 2; i <= N; i++)
gcdnumber = gcd(gcdnumber, numbers[i]);
if(gcdnumber != 1){
fout << "0" << endl;
return 0;
}
for(int i = 0; i <= MAXN; i++){
if(!vis[i]){
answer = i;
continue;
}
for(int j = 1; j <= N; j++){
vis[i+numbers[j]] = true;
}
}
fout << answer << endl;
return 0;
}
特殊情况:
1、有1,全都可以实现,输出0;
2、有无数情况不可实现,输出0;
关于情况2:
可以算所有的数的最大公约数。如果不是1,也就是说这些数不互质,那么不被这个最大公约数整除的数一定构造不出来。
关于边界:
最初写的时候只知道不用很大,用的100000,过了;
看过题解以后才知道判断 256^2 就可以了;
/*
ID : lancelo2
PROG : nuggets
LANG : C++
*/
#include <fstream>
#define MAXN 65536
using namespace std;
bool vis[MAXN+1];
int numbers[11];
int gcd(int v1, int v2)
{
while(v2){
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
int main()
{
ifstream fin("nuggets.in");
ofstream fout("nuggets.out");
int N;
fin >> N;
for(int i = 1; i <= N; i++)
fin >> numbers[i];
int answer = 0;
vis[0] = 1;
if(N == 1){
fout << "0" << endl;
return 0;
}
int gcdnumber = numbers[1];
for(int i = 2; i <= N; i++)
gcdnumber = gcd(gcdnumber, numbers[i]);
if(gcdnumber != 1){
fout << "0" << endl;
return 0;
}
for(int i = 0; i <= MAXN; i++){
if(!vis[i]){
answer = i;
continue;
}
for(int j = 1; j <= N; j++){
vis[i+numbers[j]] = true;
}
}
fout << answer << endl;
return 0;
}
相关文章推荐
- USACO 4.1 Beef McNuggets
- USACO 4.1 Beef McNuggets(DP)
- USACO-Section 4.1-PROB Beef McNuggets
- USACO Section 4.1 Beef McNuggets - 描述真吓人~
- [USACO4.1]麦香牛块Beef McNuggets
- usaco 4.1 Beef McNuggets 搜索
- P2737 [USACO4.1]麦香牛块Beef McNuggets 数学题 + 放缩思想
- USACO-Section 4.1 Beef McNuggets (DP)
- USACO 4.1 Beef McNuggets
- USACO Section 4.1 Beef McNuggets(数论 & 背包)
- Fence Loops USACO 4.1(dfs找环阵亡)
- Section 4.1 Beef McNuggets
- USACO 4.1 Fence Loops (fence6)
- USACO 4.1 Fence Rails
- USACO 4.1 Fence Loops
- USACO 4.1解题报告
- USACO section 4.1 Beef McNuggets(数论+背包)
- USACO-Section 4.1 Fence Loops (无向图最小环[Dijkstra||Floyd])
- USACO4.1 Fence rails DFSID
- usaco 4.1 Fence Loops(floyd求最小环)