HDU 5353 Average 贪心
就是贪心啊,不知道为啥总是不过,总是WA
方法不对吗?
将数组扩展一倍,从左到右扫描,大于平均数就给右边的,小于就从右边拿,等于就不变,记录下操作类型。
大于2直接NO,不知道哪错了,自己出了一些数据也都过了
路过的大神多瞄一眼
多校每周只有两场,还是尽量把题全过了吧
1 #pragma comment(linker, "/STACK:102400000,102400000") 2 #include <iostream> 3 #include <cstdio> 4 #include <fstream> 5 #include <algorithm> 6 #include <cmath> 7 #include <deque> 8 #include <vector> 9 #include <queue> 10 #include <string> 11 #include <cstring> 12 #include <map> 13 #include <stack> 14 #include <set> 15 #define LL long long 16 #define INF 0x3f3f3f3f 17 #define MAXN 200005 18 using namespace std; 19 struct Node 20 { 21 int x, y; 22 Node(int x = 0, int y = 0):x(x), y(y){}; 23 }; 24 vector<Node> res; 25 int n; 26 LL sum; 27 LL a[MAXN]; 28 int f[MAXN]; 29 int main() 30 { 31 #ifndef ONLINE_JUDGE 32 freopen("in.txt", "r", stdin); 33 //freopen("out.txt", "w", stdout); 34 #endif // OPEN_FILE 35 int T; 36 scanf("%d", &T); 37 for(int cas = 1; cas <= T; cas++){ 38 scanf("%d", &n); 39 sum = 0; 40 for(int i = 1; i <= n; i++){ 41 scanf("%d", &a[i]); 42 a[i + n] = a[i]; 43 sum += a[i]; 44 } 45 if(sum % n != 0){ 46 printf("NO\n"); 47 continue; 48 } 49 LL ave = sum / n; 50 memset(f, 0, sizeof(f)); 51 bool noans = false; 52 for(int i = 1; i < 2 * n; i++){ 53 if(a[i] == ave){ 54 continue; 55 } 56 if(a[i] < ave){ 57 if(ave - a[i] > 2){ 58 noans = true; 59 break; 60 } 61 a[i]++; 62 a[i + 1]--; 63 f[i] = 1; 64 continue; 65 } 66 if(a[i] > ave){ 67 if(a[i] - ave > 2){ 68 noans = true; 69 break; 70 } 71 a[i]--; 72 a[i + 1]++; 73 f[i] = -1; 74 } 75 } 76 if(noans){ 77 printf("NO\n"); 78 continue; 79 } 80 noans = true; 81 int cnt = 1; 82 int pos = 0; 83 for(int i = 2; i <= 2 * n; i++){ 84 if(a[i] == a[i - 1]){ 85 cnt++; 86 } 87 else{ 88 cnt = 1; 89 } 90 if(cnt == n){ 91 noans = false; 92 pos = i; 93 break; 94 } 95 } 96 if(noans){ 97 printf("NO\n"); 98 continue; 99 } 100 printf("YES\n"); 101 int x, y; 102 res.clear(); 103 for(int i = pos - n + 1; i <= pos; i++){ 104 if(f[i] == 0){ 105 continue; 106 } 107 if(f[i] == 1){ 108 x = i + 1; 109 y = i; 110 } 111 else{ 112 x = i; 113 y = i + 1; 114 } 115 if(x > n){ 116 x -= n; 117 } 118 if(y > n){ 119 y -= n; 120 } 121 res.push_back(Node(x, y)); 122 } 123 printf("%d\n", res.size()); 124 for(int i = 0; i < res.size(); i++){ 125 printf("%d %d\n", res[i].x, res[i].y); 126 } 127 } 128 }
转载于:https://www.cnblogs.com/macinchang/p/4712786.html
HDU 5353 Average 贪心相关推荐
- HDU 1036 Average is not Fast Enough!:题目解答源码
2019独角兽企业重金招聘Python工程师标准>>> HDU 1036 Average is not Fast Enough!:题目解答源码 A relay is a race f ...
- hdu 5248(二分+贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248 解题思路:这道题我原本的思路是动态规划,结果看到数很大,结果放弃了.然后想到二分,思路是对的,只 ...
- hdu 5246(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5246 解题思路:先排序,在采用贪心的方法,先给百小度找到合适的初始战斗力,找到比初始战斗力上限小的中最 ...
- hdu 4296 Buildings (贪心)
http://acm.hdu.edu.cn/showproblem.php?pid=4296 题意: 给出n个石板的重量w和它的承受能力s,将这n个石板累在一起,这样每个石板都有一个PDV = (Σw ...
- HDU - 6438(贪心+思维)
链接:HDU - 6438 题意:给出 n ,表示 n 天.给出 n 个数,a[i] 表示第 i 天,物品的价格是多少.每天可以选择买一个物品,或者卖一个已有物品,也可以什么都不做,问最后最大能赚多少 ...
- HDU 4023 (博弈 贪心 模拟) Game
如果硬要说这算是博弈题目的话,那这个博弈是不公平博弈(partizan games),因为双方面对同一个局面做出来的决策是不一样的. 我们平时做的博弈都是公平博弈(impartial games),所 ...
- HDU - 6746 Civilization(贪心+模拟)
题目链接:点击查看 题目大意:中文题面 题目分析:一道比赛时写崩了的模拟,赛后参考别人的代码,发现原来这个题目可以写的如此简单 说会题目,n 只有 500 ,可以 n * n 枚举每个位置作为起点,对 ...
- 给我往死里贪!——24行代码AC_今年暑假不AC HDU - 2037(贪心模板讲解)
励志用少的代码做高效表达 思路分析: 贪心算法模板题 贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响 该题算法模型为: 1.若每次选取开始时间最早的节目,无法求出 ...
- HDU 4864 Task(贪心或高斯消元)
题意:n台机器工作时间为ai,等级bi,m个任务需要时间ai,等级bi,一台机器只能完成一个任务,完成一个任务收益为500*ai+2*bi,求最大收益:(n,m>100000) 思路:先从大到小 ...
- HDU 5835 Danganronpa 贪心
Danganronpa 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5835 Description Chisa Yukizome works as ...
最新文章
- 基于AVR和MT8870的远程家电控制系统设计
- ABP 拦截器不工作
- 课堂经验值管理小程序_微信小程序怎么管理门店?
- java时间比较大小_Go、Java 和 Rust 的比较:得出了挺多结论
- java与python难度对比_Python和Java的区别,看完这篇文章你就清楚啦
- 深入解析JQuery中的isPlainObject()使用方法
- java集成测试_基于TestNG+Mockito及自动装配注解的Spring MVC集成测试
- 多层感知机和神经网络的区别_1.3 多层感知机
- FIFO算法与LRU算法
- mac系统使用技巧链接汇总
- 米线店结账程序 装饰着模式_云南大学《设计模式》实验报告2_装饰者模式.doc...
- 基于STM32构建EtherCAT主站(SOEM方案)5
- java jwt 单点登录_jwt技术实现系统间的单点登录
- 计算机语言的正交性,什么是“正交性”?
- 天问: 世界到底由什么组成?
- ATTCK v12版本战术介绍持久化(三)
- Easyexcel 获取表格具体位置的内容
- 美团数据分析岗面试题+解题思路
- 我跨过山和大海,穿过人山人海,只为寻找到你
- 变形金刚图片----汽车人
热门文章
- P1018 乘积最大(高精度加/乘)
- WebApi 基于token的多平台身份认证架构设计
- 【OOB】MSHTML!CPasteCommand::ConvertBitmaptoPng heap-based buffer overflow学习
- ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
- 输入框输入文字字符匹配
- umount强制卸载不起作用,卸载光驱终极办法---fuser
- 使用SecureCRT在远程主机和本地之间传输文件
- ubuntu16系统中pycharm下使用git将代码提交到github仓库
- 用Jmeter+Badboy+Fiddler做接口测试
- iphone GCDAsyncSocket 详解