Gym 100197G Robbers (卡精度)

原创 2016年08月29日 22:24:08

Robbers (题目链接)


这题有两个坑。。

1是卡精度

2是读入文件不是题面的名字


/*************************************************************************
     File Name: G.cpp
     ID: obsoles1
     PROG: 
     LANG: C++ 
     Mail: 384099319@qq.com 
     Created Time: 一  8/29 17:41:20 2016
 ************************************************************************/
#define ABS(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#include<cstdio>
#include<queue>
const int N=1010;
const double eps=1e-6;
struct node{
  int x,id,k;
  double diff;
  bool operator < (const node &rhs) const {
    return diff-rhs.diff<eps || (ABS(diff,rhs.diff)<eps && id<rhs.id);
  }
}x;
int ans[N];

int main() {
  int n,m,y,i;
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);//坑!!!
  scanf("%d%d%d",&n,&m,&y);
  int per=m/y,left=m-per*y;
  double per1=(double)m/y;
  std::priority_queue<node> q;
  for (i=0; i<n; ++i) {
    scanf("%d",&x.x);
    x.id=i;
    x.k=per*x.x;
    x.diff=per1*x.x-x.k*1.0;
    q.push(x);
  }
  while (left) {
    x=q.top(),q.pop();
    x.diff-=1.0;
    x.k++;
    left--;
    q.push(x);
  }
  while (!q.empty()) {
    x=q.top(),q.pop();
    ans[x.id]=x.k;
  }
  for (i=0; i<n; ++i)
    printf("%d%c",ans[i]," \n"[i==n-1]);
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

UVALive_6279_Caravan Robbers(二分+卡精度)

题型:二分 题意:
  • u010770930
  • u010770930
  • 2014年11月04日 22:08
  • 509

我对于卡精度的认识

在NOIP的有些毒瘤题中,你赛后会发现你的代码跟标程几乎一样,但你的代码就莫名的30、40、50分。在这种情况下,主要有很多情况,例如卡精度。下面我介绍一些卡精度的操作。(一)最常见的,爆int,这时...
  • hzk_cpp
  • hzk_cpp
  • 2017年11月07日 19:54
  • 59

ACdream 1224 Robbers (贪心)

Robbers Special Judge Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java...
  • u013446688
  • u013446688
  • 2015年06月01日 09:32
  • 666

CodeForces 686C Robbers' watch

题意:有两个数n,m。有个冒号,冒号的左边是从0到n-1的七进制的数,右边是0到m-1的七进制的数。要求冒号左右不能有重复的数字,问总共有多少种情况。 思路:首先要求不能有重复的数字,就想到用一个数组...
  • hierarch0
  • hierarch0
  • 2016年08月10日 12:14
  • 339

Codeforces Round #359 (Div. 2) C. Robbers' watch (DFS)

C. Robbers' watch time limit per test 2 seconds memory limit per test 256 megabytes input standar...
  • helloiamclh
  • helloiamclh
  • 2016年06月24日 21:10
  • 699

Robbers(贪心)

题目大意:N个强盗抢银行,抢了M个金币,他们按事先的比例分金币,但可能会出现半个金币之类的情况~那么这样就不公平啦~问怎样分配使得不公平度之和最小。 分析:这里的贪心策略是,先向下取整着分给每个人...
  • hhhhhhj123
  • hhhhhhj123
  • 2015年09月05日 01:33
  • 205

ACDREAM 03C Robbers(贪心专场)

ACDREAM 03C RobbersProblem Description N robbers have robbed the bank. As the result of their crime...
  • llx523113241
  • llx523113241
  • 2015年05月10日 20:08
  • 290

Robbers

Robbers Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)     Spe...
  • Techay
  • Techay
  • 2015年06月07日 09:52
  • 279

ACdream 1224(贪心处理)

题目链接:http://acdream.info/problem?pid=1224
  • liusuangeng
  • liusuangeng
  • 2014年10月03日 21:14
  • 534

CodeForces 686C Robbers' watch (dfs)

题目链接:http://codeforces.com/problemset/problem/686/C C. Robbers' watch time limit per test 2...
  • hkh746392783
  • hkh746392783
  • 2016年07月31日 23:33
  • 287
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gym 100197G Robbers (卡精度)
举报原因:
原因补充:

(最多只允许输入30个字)