zoukankan      html  css  js  c++  java
  • NOIP 2004 花生采摘

    题面

    link

    solution

    这题看起来很复杂,其实很水,注意别看错题目造成不必要的WA

    废话不多说,上代码

    code

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<iostream>
     4 using namespace std;
     5 /*
     6     你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;
     7     依此类推,不过你一定要在我限定的时间内回到路边。
     8 */
     9 struct node
    10 {
    11     int x,y,value;
    12 };
    13 
    14 int m,n,k,t;
    15 
    16 struct node p[1000];
    17 
    18 int mov(int now)    //计算采花生步行过程中需要的时间花费 
    19 {
    20     int m;
    21     m=abs(p[now-1].x-p[now].x)+abs(p[now-1].y-p[now].y);
    22     return m;
    23 }
    24 
    25 void Sort()     //按照花生的数量对有花生的节点进行降序排序 
    26 {
    27    for (int i=1;i<t;i++)
    28         for (int j=i+1;j<=t;j++)
    29             if (p[i].value<p[j].value) 
    30             {
    31              swap(p[i].x,p[j].x);
    32              swap(p[i].y,p[j].y);
    33              swap(p[i].value,p[j].value);
    34             }
    35 }
    36 
    37 int main()
    38 {
    39    cin>>m>>n>>k;
    40    t=0;
    41    int i,j;
    42    for (i=1;i<=m;i++)      //输入数据处理 
    43         for (j=1;j<=n;j++)
    44         {
    45             int value;
    46             cin>>value; 
    47             if (value!=0)
    48             {
    49                 p[++t].value=value;
    50                 p[t].x=j; 
    51                 p[t].y=i;
    52             } 
    53         }
    54    Sort();    //节点的花生数量排序 
    55    int now=1,ans=0;
    56    p[0].x=p[1].x;
    57    p[0].y=0; 
    58    p[0].value=0; 
    59    while ((k>0)&&((k-mov(now))>p[now].y)) //摘花生过程,且判断达到下一位置能否返回 
    60    {
    61        k-=mov(now);    //采花生过程中时间消耗计算 
    62        k--;
    63        ans+=p[now].value;  //能采到的花生节点,进行累计 
    64        now++;          //继续尝试去踩下一个位置的花生 
    65    }
    66    cout<<ans<<endl;
    67    return 0;
    68  }
  • 相关阅读:
    ruby中nil?, empty? and blank?
    dialog插件demo
    Oauth2.0 QQ&微信&微博实现第三方登陆
    SSM框架应用
    点击<a>标签后禁止页面跳至顶部
    使用Node.js+Hexo+Github搭建个人博客(续)
    软件项目托管平台
    【转载】 Eclipse注释模板设置详解
    Markdown 简介及基础语法
    SpringMVC简介
  • 原文地址:https://www.cnblogs.com/zi-nai-boboyang/p/11437046.html
Copyright © 2011-2022 走看看