NOIP 2004 普及组 复赛 peanuts 花生采摘
来源:互联网 发布:语音相似度匹配算法 编辑:程序博客网 时间:2024/04/30 21:45
NOIP 2004 普及组 复赛 peanuts 花生采摘
1.借助题图,看懂题意,道路只有一条。
2.在有一定距离的两株之间跳转,原以为要用什么高深算法,模拟了一下,无论怎么跳,步数都可以归结为|r2-r1|+|c2-c1|。省去很多麻烦。
3.采用结构题存储数据,按花生数自大到小排序。
4.采摘下一株时,要判定采下下一株并且回到路边步数是否够用,若够用,采,若不够用,结束。
5.考虑包括,可能第一株都无法采摘。花生不够采。花生全部采完。三种情况。
6.程序编制过程中,处理行列颠倒了,折腾了会,但是跟踪程序还是查了出来。
7.信心满满,提交,没想到第4个测试点WA。根据提交的数据,还是行列颠倒程序修改不全造成的。if(2*nut[0].r+1>k){//此处写成 2*nut[0].c+1>k查了好半天
8.该题涉及的问题都考虑到了,出错的原因行列颠倒修改不全。
附上AC代码,编译环境Dev-C++4.9.9.2
#include <stdio.h>
#include <stdlib.h>
struct node{
int r;//行
int c;//列
int p;//花生数目
}nut[900],nut_t;
int main(){
int m,n,k;
int i,j,v;
int count=0;
int num=0;
scanf("%d%d%d",&m,&n,&k);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++){
scanf("%d",&v);
if(v>0){
nut[count].r=i;
nut[count].c=j;
nut[count].p=v;
count++;
}
}
for(i=0;i<count;i++)//冒泡排序,自大到小
for(j=i+1;j<count;j++)
if(nut[i].p<nut[j].p){
nut_t=nut[i];
nut[i]=nut[j];
nut[j]=nut_t;
}
//采摘第一株
if(2*nut[0].r+1>k){//此处写成 2*nut[0].c+1>k查了好半天
printf("%d\n",num);
return 0;
}
else{
k=k-nut[0].r-1;
num+=nut[0].p;
}
for(i=1;i<count;i++)
if((abs(nut[i].r-nut[i-1].r)+abs(nut[i].c-nut[i-1].c)+1+nut[i].r)<=k){///可以采摘
k=k-(abs(nut[i].r-nut[i-1].r)+abs(nut[i].c-nut[i-1].c)+1);
num+=nut[i].p;
}else//采摘不到
break;
printf("%d\n",num);
return 0;
}
- NOIP 2004 普及组 复赛 peanuts 花生采摘
- noip普及组2004 花生采摘
- [普及] NOIP 2004 花生采摘
- SDNU 1167.花生采摘【NOIP 2004 普及组】【贪心】【8月6】
- NOIP2004普及组 花生采摘题解
- NOIP2004(普及组)花生采摘 模拟
- NOIP 2004 普及组 复赛 FBI树
- NOIP2004普及组第2题 花生采摘
- 普及练习场 交叉模拟 花生采摘
- NOIP 2004 普及组 复赛 unhappy 不高兴的津津
- NOIP-2016-普及组 复赛题解
- [NHZXOI2017]2016NOIP普及组复赛题解
- NOIP 2002 普及组 复赛 级数求和
- NOIP 2015 普及组 复赛 coin 金币
- NOIP 1998 普及组 复赛 三连击
- NOIP 1997 普及组 复赛 棋盘问题
- NOIP 2002 普及组 复赛 选数
- NOIP 1999 普及组 复赛 Cantor表
- Avro
- Android架构思考(模块化、多进程)
- jira7.1配置LDAP
- iOS开发#pragma预处理指令与_Pragma操作符
- 常用linux命令
- NOIP 2004 普及组 复赛 peanuts 花生采摘
- JavaScript数组简介
- Android开发之玩转FlexboxLayout布局
- Aggregation is not enabled.
- Terminate called after throwing an instance of 'ros::serialization::StreamOverrunException'
- No.2_2 FreeImage——加载/存储图像
- 【跑会指南】2017年3-5月IT技术会议大合集
- laravel 路由 详解
- Nmon的安装及使用