题意:有一片矩形花生田在路的一侧,田上的整数坐标位置有0个或多个花生,现规定从路上走到田地最边上的某个格点位置、从田边上走回路上、从一个格点移动到另一个格点、采摘格点上的花生,这四种动作都要花费一单位的时间,每次必须采摘花生数最多的格点,给出限定时间,问能采多少花生。

我一开始没有看见每次必须采摘花生数最多的格点,于是,我考虑了状压 DP 这种高端做法```本来又该满心欢喜地敲的时候发现样例并通不过```我百思不得其解后重新研读了一下题意才发现那个条件```于是```并不是高端的 DP 题,而是一道彻头彻尾的水题啊!只是模拟一下采花生的路线,反正路线肯定是从大到小固定的,然后就这样算每次的时间会不会超时,如果不超时就继续下一个点,如果超时了就输出上一个点的花生数。

中间我还RE了两法,原因是我的c初始化位置放错,导致c在循环中一直增加最终越界```低级错误啊```

 #include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std; struct point{
int x,y,n;
}p[]; int dp[],t[]; int cmp(point p1,point p2){
return p1.n>p2.n;
} int main(){
int T;
while(scanf("%d",&T)!=EOF){
int M,N,K;
int i,j,k;
for(int q=;q<=T;q++){
int c=;
memset(p,,sizeof(p));
memset(dp,,sizeof(dp));
memset(t,,sizeof(t));
scanf("%d%d%d",&M,&N,&K);
for(i=;i<=M;i++){
for(j=;j<=N;j++){
int n;
scanf("%d",&n);
if(n){
c++;
p[c].x=i;
p[c].y=j;
p[c].n=n;
}
}
}
sort(p+,p+c+,cmp);
for(i=;i<=c;i++){
if(i==)t[i]=p[i].x+;
else t[i]=+t[i-]+abs(p[i].x-p[i-].x)+abs(p[i].y-p[i-].y);
if(t[i]+p[i].x>K)break;
else{
dp[i]=dp[i-]+p[i].n;
}
}
printf("%d\n",dp[i-]);
}
}
return ;
}

hdu1355的更多相关文章

随机推荐

  1. Lua中模块初识

    定义了两个文件: Module.lua 和 main.lua 其中,模块的概念,使得Lua工程有了程序主入口的概念,其中main.lua就是用来充当程序主入口的. 工程截图如下: Module.lua ...

  2. Java JDK5新特性-静态导入

    2017-10-31 00:10:50 静态导入格式:import static 包名 ...类名.方法名: 也就说可以直接导入到方法名. 注意: 方法必须是静态的 如果有多个同名的静态方法,容易不知 ...

  3. Eclipse 设置代码风格

    自动调整代码风格 快捷键Ctrl + Shift + F 或者 右键 source -> format 设置代码风格 window -> preference -> java -&g ...

  4. Jaccard similarity(杰卡德相似度)和Abundance correlation(丰度相关性)

    杰卡德距离(Jaccard Distance) 是用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数.而杰卡德相似系数(Jaccard similarit ...

  5. WPF StoryBoard用法

    时间:2011-06-15 21:26来源:百度空间 作者:shichen4 点击: 次 StoryBoard使用,Xaml转cs代码 Canvas.Triggers EventTriggerRout ...

  6. loj#101. 最大流 dinic+当前弧

    板子题 当前弧优化版本 目前效率最高 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize(&q ...

  7. js 正则去除指定的单词

    以企业邮箱为例:@后面不能是qq   126   163  188 gmail   yahoo   sina   hotmail  suhu   sogu  等单词. <!DOCTYPE htm ...

  8. 在linux中,如何增加、修改、删除、暂停和冻结用户名

    在Linux中,如何增加.修改.删除.暂停和冻结用户名 在操作增加.修改和删除用户名前,先认识linux中两个最重要的文件,它们就是账号管理最重要文件“/etc/passwd”与“etc/shadow ...

  9. Idea安装及其简介

    Idea现有设置         Idea重新安装步骤 卸载开始     D:\devsoft\jet\env\maven\global\wonders\settings.xml           ...

  10. 数据库cmd窗口登录

    mysql -uroot -p123 -P3306 -h127.0.0.1 -uroot::root数据库登录用户名 -p123:数据库密码123 -P3306::3306数据库的端口号 -h127. ...