均分纸牌

洛谷1031

题意:Noip2002提高组

分析:对于长为L的区间,若其正好满足要求,则其中操作的次数为L-1次,否则每次遇到不满足要求的操作的次数加1

 1 //
 2 //  main.cpp
 3 //  Luogu
 4 //
 5 //  Created by wanghan on 16/9/11.
 6 //  Copyright © 2016年 wanghan. All rights reserved.
 7 //
 8
 9 #include<iostream>
10 #include<cstdio>
11 #include<cstring>
12 #include<algorithm>
13 #include<cmath>
14 #include<string>
15 #include<cctype>
16 #include<vector>
17 #include<stack>
18 #include<queue>
19 #include<map>
20 #include<set>
21 #include<deque>
22 #include<cmath>
23 using namespace std;
24 const int maxn=110;
25 long long a[maxn];
26 int n;
27 int main(int argc, const char * argv[]) {
28     while(cin>>n)
29     {
30         long long ans=0;
31         for(int i=1;i<=n;i++){
32             cin>>a[i];
33             ans+=a[i];
34         }
35         long long cnt=ans/n;
36         int tt=0;
37         long long num=0;
38         for(int i=1;i<=n;i++)
39         {
40             num+=a[i];
41             if(num!=i*cnt) tt++;
42         }
43         cout<<tt<<endl;
44     }
45     return 0;
46 }

时间: 2024-10-15 09:32:38

均分纸牌的相关文章

1098 均分纸牌

1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动

洛谷 P1031 均分纸牌

P1031 均分纸牌 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如 N=4,4 堆纸牌数分别为: ①9②8③17④6 移动3次可达到目的: 从 ③ 取

code vs 1098 均分纸牌(贪心)

1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一

洛谷P1368 均分纸牌(加强版)

P1368 均分纸牌(加强版) 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,纸牌总数必为 N 的倍数.可以在任一堆上取1张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,能移到编号为 2和N 的堆上:在编号为 N 的堆上取的纸牌,能移到编号为 N-1和1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,使每堆上纸牌数都一样多且牌的移动次数尽量少. 输入输出格式 输入格式: 第一行一个整数n 第二行为n个空格分开的正整数,为

均分纸牌(贪心)

均分纸牌 Time Limit:1000MS  Memory Limit:65536KTotal Submit:241 Accepted:103 Description 有 N 堆纸牌,编号分别为 1,2,-, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若干张纸牌,然后移动.移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上.现在要求找出一种移动方法

【贪心】均分纸牌

问题 B: [贪心]均分纸牌 时间限制: 1 Sec  内存限制: 64 MB提交: 39  解决: 18[提交][状态][讨论版] 题目描述 有N堆纸牌,编号分别为1,2,…,N.每堆上有若干张,但纸牌总数必为N的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上:在编号为N的堆上取的纸牌,只能移到编号为N-1的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如

贪心练习(一) 均分纸牌

问题 B: [贪心]均分纸牌 题目描述 有N堆纸牌,编号分别为1,2,…,N.每堆上有若干张,但纸牌总数必为N的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上:在编号为N的堆上取的纸牌,只能移到编号为N-1的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如 N=4,4堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的: 从③  取4张牌放到

【算法学习笔记】25.贪心法 均分纸牌问题的分析

贪心法: 贪?算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是贪?心策略的选择,选择的贪?策略必须具备?后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关. 太概念化了.总结起来三点: 可行性:必须满足问题的约束 局部最优:当前步骤中所有可行的选择里最佳的局部选择. 不可取消:选择一旦做出,后面的步骤就无法改变. 问题要具有贪心选择性

均分纸牌(NOIP2000senior)解题报告

均分纸牌(NOIP2000senior) 解题报告 [题目描述] 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如 N=4,4 堆纸牌数分别为: ① 9 ② 8 ③

【蓝桥杯】均分纸牌

[问题描述] 有 N 堆纸牌,编号分别为 1,2,-, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如 N=4,4 堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的: 从 ③ 取 4