社区讨论

求助!边界条件

P2036[COCI 2008/2009 #2] PERKET参与者 2已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo3bbml9
此快照首次捕获于
2023/10/24 03:50
2 年前
此快照最后确认于
2023/10/24 03:50
2 年前
查看原帖
感觉总体应该问题不大,但是输出的时候所有的样例cha都是没变的
C
#include<iostream>
#include<cmath>
using namespace std;
struct food {
	int s;//酸度
	int b;//苦度
};
int n;
food arr[10];
int book[100];
long cha = 99999999;
//index是food数组里头的索引
void dfs(int index,int sums,int sumb) {
	//全部选了一遍
	
	if(index>=n){
		if (abs(sums-sumb )< cha) {
			cha = abs(sums - sumb);
		}
		return;
	}
	for (index; index < n; index++) {
		//不能重复选的话
		if (book[index] == 0) {
			//选了
			book[index] = 1;

			dfs(index++, sums * arr[index].s, sumb + arr[index].b);
			//不选
			book[index] = 0;
		}
		
	}
}
int main() {
	cin >> n;
	//放在数组1-n的位置上
	for (int i = 0; i <n; i++) {
		cin >> arr[i].s >> arr[i].b;
	}
	dfs(0, 1, 0);
	cout << cha;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...