CF 675 div2C 数学 让环所有值变为0的最少操作数
http://codeforces.com/contest/675/problem/C
题目大意:
给一个环,标号为1-n,然后能从n回到1.让这个环的值为0,最少需要的操作数是多少?
这道题目呀。。。应该说是自己的问题吧,规律并没有那么难找的,只要我将前缀全部都计算一遍就完全可以找出规律了的。。。然后竟然没有去那么做。
首先我们分析,最多的次数就是n-1.然后我们再看,因为是一个环,那么如果每次前缀和出现了0,就是说明这一段内可以得到0,那么所移动的次数就可以少1.
然后我们在反过来分析,我们要找到这个0的个数,应该怎么找呢?然后我们得出规律,如果某个值重复出现了,就说明他同时存在两边可以同时取值到这个值,并且变为0。然后我们用map<ll, int>m来保存,第一维保存的是前n项的和,第二位保存的是这个和的值出现过几次:例如m[3] = 2的意思就是前缀和是3的次数出现过两次。
例如sum的变化是这样子的2 4 6 4 2.那么就说明4 6 4之间的三个值可以变为0,那么同理2和2之间的值也可以变为0.
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
map <ll, int> m; int main(){
ll n;
scanf("%lld", &n);
ll res = n - ;
ll sum = ;
for (int i = ; i <= n; i++){
ll t;
cin >> t;
sum += t;
m[sum]++;
res = min(res, n - m[sum]);
}
printf("%lld\n", res);
return ;
}
CF 675 div2C 数学 让环所有值变为0的最少操作数的更多相关文章
- 火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样, window.on ...
- 问题-MyBatis不识别Integer值为0的数据
问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test=&qu ...
- 怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?
分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.b ...
- 将n阶方阵左下半三角中的元素值置0.
/*===================================== 将n阶方阵左下半三角中的元素值置0. 0<n<10. =========================== ...
- SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
原C#代码如下: if (query != null) { switch (query.MethodFlag) { //进出口退补税额统计表 case (int)EnumClassifyCorrect ...
- Java中在实例化一个类时,这个类中没有初始值的int类型成员变量i,i的值是不是0?
java中有两种类型一种是数值性,另一种是类变量数值性变量的初始值为0,类变量的初始化为null没做初始化成员变量int性变量是0, 在java中有这么一条规则,声明在方法中的变量在使用时必须要初始化 ...
- document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
转自http://wo13145219.iteye.com/blog/2001598 一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取do ...
- Mybatis中 Integer 值为0时,默认为空字符串的解决办法。
需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" par ...
- SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据
SELECT INTO和INSERT INTO SELECT的区别 数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Ta ...
随机推荐
- URL匹配与req参数解析
通配URL*(可代表任何字符串) 例如: app.get('/test/*', function(req, res){ res.send(req.query.aa); }) '/test/*通配tes ...
- The first to Python
今天在51cto购买了python教程,今后在这里记录我python的点点滴滴,感谢博客园给予的平台,感谢51cto给予的机会,感谢导师.
- C# 鼠标事件弹框
if (e.Button == MouseButtons.Right) { if (gridView1.GetFocusedRowCellValue("color").ToStri ...
- chrome浏览器调试工具的使用
废话不多说,给大家介绍一下最基本的浏览器调试工具
- dialog弹出,点击back按键无法返回问题解决
今天阅读队友代码,调试代码中,发现对话框弹出点击back按键无法返回问题解决. 代码如下: /** * 单个按钮没有标题的弹框 * * @param context * @param content内 ...
- fragement切换动画效果的实现
标准动画: fragementTransaction.setTransition(FragmentTransation.TRANSIT_FRAGMENT_CLOSE); 自定义动画: fragemen ...
- SPOJ 705 New Distinct Substrings
后缀数组.按照排序完的后缀一个一个统计.每一个后缀对答案做出的贡献为:n-SA[i]-height[i]. #pragma comment(linker, "/STACK:102400000 ...
- HDU 2732 Leapin' Lizards
网络最大流+拆点.输出有坑!!! #include<cstdio> #include<cstring> #include<string> #include<c ...
- php curl 获取 HTTPS
注意:谷歌的话开vpn可能才可以,goagent也不行function getHTTPS($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_S ...
- mysql 表连接
1.子查询是指在另一个查询语句中的SELECT子句. 例句: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT ...