【题目链接】:http://hihocoder.com/problemset/problem/1499

【题意】

【题解】



贪心,模拟;

从左往右对于每一列;

如果上下两个格子;



有一个格子超过了所需;

另外一个格子小于所需;

则把超过了的格子转移一些到小于的那个,让上下两个互补;

然后把剩下的往右传(肯定是要往右传的);



如果两个格子都超过了所需;

则把两个格子多余的硬币都往右传.



如果两个格子都小于所需;

则两个格子都从右边借一些

【Number Of WA】



1(输入是一列一列地输入的…)



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 100500; int n;
LL a[3][N],sum,goal,ans = 0; int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
cin >> n;
rep1(i,1,n)
{
cin >> a[1][i] >> a[2][i];
sum+=a[1][i],sum+=a[2][i];
}
goal = sum/(2*n);
rep1(j,1,n)
{
if (a[1][j]>=goal && a[2][j]>=goal)
{
ans+=a[1][j]-goal,ans+=a[2][j]-goal;
a[1][j+1]+=a[1][j]-goal;
a[2][j+1]+=a[2][j]-goal;
continue;
}
if (a[1][j]>=goal && a[2][j]<goal)
{
LL need = goal-a[2][j],have = a[1][j]-goal;
if (have>=need)
{
ans+=have;
a[1][j+1]+=have-need;
}
else
{
ans+=have;
a[2][j]+=have;
a[2][j+1]-=(goal-a[2][j]);
ans+=(goal-a[2][j]);
}
continue;
}
if (a[1][j]<goal && a[2][j]>=goal)
{
LL need = goal-a[1][j],have = a[2][j]-goal;
if (have>=need)
{
ans+=have;
a[2][j+1]+=have-need;
}
else
{
ans+=have;
a[1][j]+=have;
a[1][j+1]-=(goal-a[1][j]);
ans+=goal-a[1][j];
}
continue;
}
if (a[1][j]<goal && a[2][j] < goal)
{
ans+=goal-a[1][j],ans+=goal-a[2][j];
a[1][j+1]-=(goal-a[1][j]),a[2][j+1]-=(goal-a[2][j]);
continue;
}
}
cout << ans << endl;
return 0;
}

【hihocoder 1499】A Box of Coins的更多相关文章

  1. 【hihocoder 1298】 数论五·欧拉函数

    [题目链接]:http://hihocoder.com/problemset/problem/1298 [题意] [题解] 用欧拉筛法; 能够同时求出1..MAX当中的所有质数和所有数的欧拉函数的值; ...

  2. 【hihocoder 1297】数论四·扩展欧几里德

    [题目链接]:http://hihocoder.com/problemset/problem/1297 [题意] [题解] 问题可以转化为数学问题 即(s1+v1*t)%m == (s2+v2*t)% ...

  3. 【hihocoder 1296】数论三·约瑟夫问题

    [题目链接]:http://hihocoder.com/problemset/problem/1296 [题意] [题解] [Number Of WA] 0 [完整代码] #include <b ...

  4. 【hihocoder 1295】Eular质数筛法

    [题目链接]:http://hihocoder.com/problemset/problem/1295 [题意] [题解] 可以在O(N)的复杂度内求出1..N里面的所有素数; 当然受空间限制,N可能 ...

  5. 【hihocoder 1287】 数论一·Miller-Rabin质数测试

    [题目链接]:http://hihocoder.com/problemset/problem/1287 [题意] [题解] 取的底数必须是小于等于n-1的; 那12个数字能通过2^64以内的所有数字; ...

  6. 【hihocoder 1333】平衡树·Splay2

    [题目链接]:http://hihocoder.com/problemset/problem/1333 [题意] [题解] 伸展树; 要求提供操作: 1.插入一个元素,两个权值,id作为查找的比较权值 ...

  7. 【hihocoder 1329】平衡树·Splay(Splay做法)

    [题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 插入操作:-,记住每次插入之后都要把它放到根节点去就好; 询问操作:对于询问 ...

  8. 【hihocoder 1329】 平衡树·Splay(set做法)

    [题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 因为一开始是空的树,所以; n其实就代表了树中的最多元素个数; 则最坏的情况 ...

  9. 【hihocoder 1476】矩形计数

    [题目链接]:http://hihocoder.com/problemset/problem/1476 [题意] [题解] 首先不考虑黑格子,计算出一共有多少个矩形: 枚举矩形的大小r×c,这样大小的 ...

随机推荐

  1. java调用c++ dll出现中文乱码

    近期的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作. 在调用中假设路径中包括有中文字符就会出现故障.程序执行就会中止. 以下用一个小样例,来说明记 ...

  2. jabberNet 发送出席信息

    没代码我说个J8: public void Presence(User.EStatus status) { string statustxt = ""; //说明文字.比如,离开的 ...

  3. Fragment嵌套

    当我们从一个Activity启动了一个Fragment,然后在这个Fragment中又去实例化了一些子Fragment,在子Fragment中去有返回的启动了另外一个Activity,即通过start ...

  4. ningbooj--1655--木块拼接(贪心)

     [1655] 木块拼接 时间限制: 1000 ms 内存限制: 65535 K 问题描述 好奇的skyv95想要做一个正方形的木块,现在有三种颜色的矩形木块,颜色分别为"A" ...

  5. nyoj--1100--WAJUEJI which home strong!(bfs)

    WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么 ...

  6. gcd&&exgcd&&斐蜀定理

    gcd就是求a和b最大公约数,一般方法就是递推.不多说,上代码. 一.迭代法 int gcd(int m, int n) { ) { int c = n % m; n = m; m = c; } re ...

  7. spring boot测试

    今天在springside里试了spring boot,果然很方便,内置容器,不需要配置web.xml,简单几个文件就可以实现增删改查操作,一些配置如tomcat端口之类的直接写在applicatio ...

  8. 画板(适用于手机、PC端)

    Html代码 <script type="text/javascript" src="jquery-1.9.1.min.js"></scrip ...

  9. C#之纯数字判断

    public bool isNaN(string temp) { ; i <temp.Length; i++) { byte tempByte = Convert.ToByte(temp[i]) ...

  10. Android 集成GoogleMap,实现定位和获取位置信息

    1.准备 我使用的是AS2.2.2,首先FQ注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入 1.1. AS创建项目 ...