yunzhonghe105 2018-03-06 03:52 采纳率: 60%
浏览 807
已采纳

北大 POJ 1062 昂贵的聘礼 用C++语言 怎么解?

#include
using namespace std;

struct Comm{
unsigned short price;
short dv;
short num;
};
Comm goods[111];

unsigned short succ[111][111];
short menu[111][111];
int price_min,dv_max,dv_min;

void good_min(int good_id,int good_price){
int i;
int temp_id,temp_price,lujing;
for (i = 0;i < goods[good_id].num;i++) {
temp_id = menu[good_id][i];
if (good_price <= price_min && goods[temp_id].dv <= dv_max && goods[temp_id].dv >= dv_min){
temp_price = good_price + succ[good_id][temp_id] + goods[temp_id].price;
price_min = price_min < temp_price ? price_min : temp_price;
lujing = good_price + succ[good_id][temp_id];
good_min(temp_id,lujing);
}
}
return;
}

int main(){
int limit,tot;
int i,j;
int temp_id,temp_price;
cin >> limit >> tot;
for (i = 1;i <= tot;i++) {
cin >> goods[i].price >> goods[i].dv >> goods[i].num;
for (j = 0;j < goods[i].num;j++) {
cin >> menu[i][j] >> temp_price;
temp_id = menu[i][j];
succ[i][temp_id] = temp_price;
}
}
price_min = goods[1].price;
dv_max = goods[1].dv + limit;
dv_min = goods[1].dv - limit;
good_min(1,0);
cout << price_min << endl;
return 0;
}

这段代码哪里有问题?用计算机运行了一下结果是正常的,但是北大网站一直提示错误,具体错在哪里?

  • 写回答

1条回答 默认 最新

  • xxyyttxx 2018-03-06 04:48
    关注
    dv_max = goods[1].dv + limit;
    dv_min = goods[1].dv - limit;
    

    这里出错了,根据题意应该枚举[dv-limit, dv] ... [dv, dv+limit] 这limit+1种区间

    ps 不保证没有其他错
    ps2 问问poj的host现在是多少?还是poj.org?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办