博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1045 HAOI2008 糖果传递
阅读量:5058 次
发布时间:2019-06-12

本文共 720 字,大约阅读时间需要 2 分钟。

前段时间TYVJ的某场模拟赛好似有这个题、、模型就是环形的均分纸牌、、

这个题目其实主要是数学分析啦、、

从线性的均分纸牌出发、令a[i]为纸牌树,k为每堆的目标牌数、

记p[i]=k-a[i]+p[i-1] 含义就是第i堆需要从后一堆拿的纸牌、

那么对p数组求和就是答案了、

对这个环形的、我们这样考虑、

记sum[i]=sigma(p[j]-p[j-1])  j<=i 那么可以得到p[1]=p[i]-sum[i] 即 p[i]=sum[i]+p[1]

又因为最后的答案ans=sigma p[i]=sigma (s[i]+p[1]) 即数轴上s数组的点到-p[1]的距离之和、

而s数组中的值的集合在取任一点为起点的时候都是不变的、

所以当p[1]为该数组中的中位数时ans最小、

剩下的就是写代码啦~

 

Code:

#include 
#include
#include
#include
#include
#include
using namespace std;int a[1000001],p[1000001];long long ans,tot,now,n;int main(){ scanf("%d",&n); for (int i=0;i

  

转载于:https://www.cnblogs.com/JS-Shining/archive/2012/09/24/2700711.html

你可能感兴趣的文章
python小知识(一)---super是干嘛的
查看>>
WebService的使用
查看>>
BZOJ_1623:_[Usaco2008_Open]_Cow_Cars_奶牛飞车_(贪心)
查看>>
VS2005运行时读写配置文件(.config)
查看>>
knockout之入门介绍
查看>>
并发控制 mysql MyISAM表锁
查看>>
操作系统——输入/输出
查看>>
Windows下VS2013 C++编译测试faster-rcnn
查看>>
持续就是力量
查看>>
面向对象(Object Oriented)
查看>>
CentOS 7最小安装配置网络
查看>>
ZOJ 1203 Swordfish MST
查看>>
二叉树的宽度和深度
查看>>
Xcode Snippets
查看>>
windows下的anacond使用pip安装组件操作
查看>>
确定位置的经纬度LocationUtil
查看>>
期末总结
查看>>
作业要求 20171019 本周例行报告
查看>>
苹果内购支付的一些问题截屏
查看>>
信号完整性(四):信号振铃是怎么产生的
查看>>