http://agc010.contest.atcoder.jp/tasks/agc010_b

预处理出每两个相邻的数的差值,那么首先知道是一共取了sum / ((1 + n) * n / 2)次,因为每一次固定要取这么多,所以这个就是操作次数。

然后观察到,每一次操作,都是把dis[]数组的n - 1个减小1,有一个要加上n - 1、最终要变成0

那么问题就是转化成,给定一个数,有两种操作,

第一种是减去1,第二种是加上某一个数,问其在k步后,能否变成0

那么设第一种操作用了x次,第二种操作就是k - x次,那么带入去,能得出一条方程。

dis[i] - x + (k - x) * (n - 1) = 0  (错误了)

不知为何这样错了,很假。

然后题解是设第一种用了k - x次,第二种用了x次。

那么就是dis[i] - (k - x) + x * (n - 1) = 0(能过)

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <assert.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL; #include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <bitset>
const int maxn = 2e5 + ;
int a[maxn];
vector<int>da;
void work() {
int n;
LL sum = ;
cin >> n;
for (int i = ; i <= n; ++i) {
cin >> a[i];
sum += a[i];
}
LL add = 1LL * n * (n + ) / ;
if (sum % add != ) {
cout << "NO" << endl;
return;
}
for (int i = ; i <= n; ++i) {
da.push_back(a[i] - a[i - ]);
}
da.push_back(a[] - a[n]);
LL k = sum / add;
for (int i = ; i < da.size(); ++i) {
LL t = k - da[i];
// LL t = da[i] + k * (n - 1);
if (t % n != || t < ) {
cout << "NO" << endl;
return;
}
}
cout << "YES" << endl;
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return ;
}

Atcoder B - Boxes 玄学 + 数学的更多相关文章

  1. 2018.07.12 atcoder Choosing Points(数学分析好题)

    传送门 一句话题意:给出n,d1,d2" role="presentation" style="position: relative;">n,d ...

  2. CF 990A. Commentary Boxes【数学/模拟】

    [链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...

  3. HDU 5810 Balls and Boxes ——(数学,概率,方差)

    官方题解看不太懂,参考了一些人的博客以后自己证明如下: 其中D(X)和E(X)的公式如下(参考自百度百科): 其中 p = 1 / m .(这是每一个单独事件发生的概率期望,在这里单独事件指的是一个球 ...

  4. WC2019 自闭记

    不咕了 Day 1 2019/1/24 辣么快就到冬令营了,还沉迷于被柿子吊打的状态的菜鸡一时半会还反应不过来.我们学校这次分头去的冬令营,差点上不了车.这次做的动车居然直达广州,强啊. 然鹅还是到太 ...

  5. Atcoder Grand Contest 010 B - Boxes 差分

    B - Boxes 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_b Description There are N boxes arrang ...

  6. HDU 5810 Balls and Boxes 数学

    Balls and Boxes 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5810 Description Mr. Chopsticks is i ...

  7. 【HDU 5810多校】Balls and Boxes(打表/数学)

    1.打表找规律,下面是打表程序: #include <iostream> #include <cstdio> #define ll long long #define N 10 ...

  8. UVaLive 7500 Boxes and Balls (数学)

    题意:给定 n 个球,每次从每篮子里拿出来一个放在一个新篮子里,并移除相同的,按球的个数进行排序,问你用最多几个球能完成循环. 析:数学问题,很容易发现前n项和就是最多的球数,所以我们只要找最大的n项 ...

  9. AtCoder Beginner Contest 069【A,水,B,水,C,数学,D,暴力】

    A - K-City Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement In K-city, ...

随机推荐

  1. form怎样正确post文件

    form在HTML中,是用于收集用户输入的,基本全部浏览器都支持form.给form加入method属性.就能实现将用户在form内控件输入的信息POST到制定地址.或发送GET请求. 写了以下一段代 ...

  2. instancetype VS id

    英文好的直接读下面链接的文章就好了: http://stackoverflow.com/questions/8972221/would-it-be-beneficial-to-begin-using- ...

  3. PHP开发者实用的代码

    一.查看邮件是否已被阅读 当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读.这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间. <? error_reporting( ...

  4. VMware 虚拟机添加硬盘以及为新添加的硬盘创建Samba共享 (转)

    一.为VMware虚拟机添加硬盘 1. 首先在VMware虚拟机的VM->Setting子菜单中为虚拟机添加一块15G大小的SCSI类型的硬盘(注意:如果原来为IDE硬盘,SCSI类型的硬盘可能 ...

  5. 项目已经部署,tomcat已经启动,网址也没问题,却出现404错误

    这个有可能是tomcat在初始化资源的时候发生了异常...判断tomcat是否发生异常就是看tomcat启动日志里有没有报错就行了. 另一种原因就是可能是修改了项目名称.因为web名称实际上是没有跟着 ...

  6. Android 官方博客 - Android应用程序的内存分析(翻译)(转)

    转自:http://www.cnblogs.com/wisekingokok/archive/2011/11/30/2245790.html Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关 ...

  7. C和Fortran互相传递动态数组

    C和Fortran的相互调用传递数值的方法有很多,但是F03标准的出笼,使用ISO_C_BINDING进行C和Fortran的互相调用有着更显著的优势: 1.与编译器和平台无关: 2.Fortran中 ...

  8. Java基础学习之final和多态及类型转换

    finalkeyword: finalkeyword是终于的意思,能够修饰类,成员变量,成员方法. •    修饰类,类不能被继承 •    修饰变量,变量就变成了常量,仅仅能被赋值一次. •    ...

  9. Koa2学习(四)POST请求

    Koa2学习(四)POST请求 接受请求 POST请求的数据实体,会根据数据量的大小进行分包传送. 当node.js后台收到post请求时,会以buffer的形式将数据缓存起来.Koa2中通过ctx. ...

  10. spring boot实现文件上传下载

    spring boot 引入”约定大于配置“的概念,实现自动配置,节约了开发人员的开发成本,并且凭借其微服务架构的方式和较少的配置,一出来就占据大片开发人员的芳心.大部分的配置从开发人员可见变成了相对 ...