ZOJ Problem Set - 1029 Moving Tables

本文讨论了一次编程经历中因误用swap()函数而导致的WA(Wrong Answer)问题,强调了在处理特定算法(如贪心算法)时正确使用交换操作的重要性。文章通过实例展示了在排序和分配任务中的错误处理方式,最终找到了解决方法并总结了经验教训。

水贪心~~就因为写错了swap(),wa了!坑爹! 今天彻底没状态啊!!被各种事情搞得头昏眼花!哭~~~

以后交换都用swap() !不然继续坑爹!

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
struct Node
{
      int r1;
      int r2;
}node[210];
bool cot[210];
int cmp(const void *a,const void *b)
{
      if((*(Node *)a).r1 != (*(Node *)b).r1)
      return (*(Node *)a).r1 - (*(Node *)b).r1;
      else
      return (*(Node *)a).r2 - (*(Node *)b).r2;
}
int main()
{
    int cas,n,i,ans,j,tmp,k;
    cin>>cas;
    while(cas --)
    {
          ans = 0;
          memset(cot,0,sizeof(cot));
          cin>>n;
          for(i = 0;i < n;i ++){
          cin>>node[i].r1>>node[i].r2;
          if(node[i].r1 > node[i].r2){swap(node[i].r1,node[i].r2);}
          }
          qsort(node,n,sizeof(node[0]),cmp);
                j = 0;
                while(j < n)
                {
                      if(cot[j] == 0)
                      {
                           cot[j] = 1;
                           ans += 10;
                           tmp = node[j].r2;
                           if(tmp % 2 == 1) tmp++;
                           for(k = 0;k < n;k ++)
                           {
                                 if(cot[k] == 0&&node[k].r1 > tmp)
                                 {tmp = node[k].r2;cot[k] = 1;}
                           }
                      }
                      j ++;
                }
       cout<<ans<<endl;

    }
    return 0;
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值