ZOJ-2235
来源:互联网 发布:查看oracle数据库oid 编辑:程序博客网 时间:2024/05/18 04:00
开始的时候把打印语句放到else块里了,导致k很大时不会输出结果,WA调了半天。。坑啊,粗心害死人,其实还是逻辑不严密导致的
#include<stdio.h>#include<stdlib.h>#include<math.h>struct Peanut{ int amount; int hor; int ver; int time;};int cmp2235(const void *p1, const void *p2){ struct Peanut *pp1 = (struct Peanut *) p1; struct Peanut *pp2 = (struct Peanut *) p2; return pp2->amount - pp1->amount;}int main(){ int t, m, n, k, i, j, num; scanf("%d", &t); struct Peanut *peanut = malloc(2500 * sizeof(struct Peanut)); while (t--) { int index = 0; scanf("%d %d %d", &m, &n, &k); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { scanf("%d", &num); if (num) { peanut[index].amount = num; peanut[index].hor = j; peanut[index++].ver = i; } } qsort(peanut, index, sizeof(struct Peanut), cmp2235); int picked = 0; for (i = 0; i < index; i++) { if (!i) peanut[i].time = 1 + peanut[i].ver + 1; else peanut[i].time = peanut[i - 1].time + abs(peanut[i].ver - peanut[i - 1].ver) + abs(peanut[i].hor - peanut[i - 1].hor) + 1; if (peanut[i].time + peanut[i].ver + 1 <= k) picked += peanut[i].amount; else break; } printf("%d\n", picked); } free(peanut); return 0;}
0 0
- ZOJ-2235
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- 23-三目运算符的嵌套使用
- IOS7状态栏
- Boot Loader的启动流程和开发经验总结
- 24-输入字符串判断字母数字空格其他数目
- 基于WINCE6.0下载multiple XIP镜像文件
- ZOJ-2235
- 甘肃榆中哄抢橘子34名参与者受到处分 保险公司将赔偿货主
- MTK驱动调试
- 百度地图Android SDK怎么申请使用图文教程
- 25-输入数字和个数计算sn=a+aa+..
- 逻辑运算
- 第一学期的C++学习心得与感受
- Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)
- 青岛中石化管道爆炸事故调查报告公布