Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

P1882,help!

Posted by frinemore at 2022-04-23 10:29:09
The second of the example,my answer is always:
"max coverage = 544 : 1 15 52 67 99",but the standard answer is:
"max coverage = 409 : 1 7 16 31 88".
Is it because I don`t understand the meaning of "the maximal coverage"?
I have no idea.

This is my code(C++):


#include<cstdio>

const int maxn = 15;
const int maxm = 1e3 + 10;

int stamps[maxn][maxn], f[maxm];
int S, n;

void calc(int& x, int& y, int cur);
int max(int x, int y) { return x > y ? x : y; }
int min(int x, int y) { return x < y ? x : y; }

int main() {
	while(scanf("%d", &S) == 1 && S) {
		scanf("%d", &n);
		for(int k = 1; k <= n; k++) {
			scanf("%d", &stamps[k][0]);
			for(int i = 1; i <= stamps[k][0]; i++)
				scanf("%d", &stamps[k][i]);
		}
		
		int ans = -1, col, M;
		for(int k = 1; k <= n; k++) {
			int res, _m;
			calc(res, _m, k);
			printf("res = %d m = %d\n", res, _m);
			if(res < ans) continue;
			if(res > ans || (stamps[col][0] > stamps[k][0]) ||
				(stamps[col][0] == stamps[k][0] && _m < M)) {
					ans = res; col = k; M = _m;
				}
		}
		printf("max coverage = %d :", ans);
		for(int i = 1; i <= stamps[col][0]; i++) printf(" %d", stamps[col][i]);
		printf("\n");
	}
	return 0;
}

void calc(int& x, int& y, int cur) {
	for(int i = 1; i < maxm; i++) f[i] = 1e9; f[0] = 0;
	
	y = -1;
	for(int i = 1; i <= stamps[cur][0]; i++) {
		y = max(y, stamps[cur][i]);
		for(int j = stamps[cur][i]; j < maxm; j++)
			if(f[j - stamps[cur][i]] < S) f[j] = min(f[j], f[j - stamps[cur][i]] + 1);
	}
	
//	for(int i = 0; i < 10; i++) printf("!%d ", f[i]);
//	printf("\n");
	x = -1;
	for(int i = 1; i < maxm; i++) {
		if(f[i] > S) continue;
		int j;
		for(j = i; (j + 1) < maxm && f[j + 1] <= S; j++);
		x = max(x, j - i + 1);
		i = j;
	}
	return;
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator