题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5265

解题思路:

首先对每个数进行去模,这样得到的数就会是[0,p-1]的范围,接下来就是如何组合的问题了。

这里要考虑到模的性质了,假设取的两个数分别为i,j,其中i >= j,如果当前数i>(p-1)/2,那么就会出现两种情况:

1)j>(p-1)/2,这样算出来的结果必定是i+j-p,i和j肯定都要尽可能大;

2)j<(p-1)/2,这样算出来的结果必定是i+j,那么我选择的j肯定要尽可能的接近(p-1)/2。

如果当前的数i<(p-1)/2,那么选择的j同样是要接近于(p-1)/2。

以上的分析当中选择最大的即可。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int maxn = 100005;
int n,p,pos,a[maxn];int main()
{while(scanf("%d%d",&n,&p)!=EOF){for(int i = 1; i <= n; i++){scanf("%d",&a[i]);a[i] = a[i] % p; //先去模,每个数的范围就变成了0-p-1}sort(a+1,a+1+n);int tmp = (p - 1) >> 1;pos = n;for(int i = 1; i <= n; i++) //找到最后一个小于等于(p-1)/2的位置if(a[i] > tmp){pos = i - 1;break;}int ans = 0;for(int i = 2; i <= n; i++){if(i <= pos)  //当前的位置都小于(p-1)/2ans = max(ans,a[i] + a[i-1]);else{ans = max(ans,a[i] + a[i-1] - p);tmp = p - 1 - a[i];int t = lower_bound(a+1,a+1+pos,tmp+1) - a;if(t > 1)ans = max(ans,a[i] + a[t-1]);}}printf("%d\n",ans);}return 0;
}

hdu 5265(二分+枚举)相关推荐

  1. hdu 5248(二分+贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248 解题思路:这道题我原本的思路是动态规划,结果看到数很大,结果放弃了.然后想到二分,思路是对的,只 ...

  2. 二分枚举+贪心(nyist疯牛)

    点我啊~带你去找它\(^o^)/~ 一开始一点思路都没有,压根不知道它要求的是什么,然后问了一下班长,才明白题目的意思就是,给你N个点,要你找出最优解的C点,言简意赅的即使说区间选点. 思路: 假设两 ...

  3. poj 2455 Secret Milking Machine(二分枚举+最大流)

    题意: 题意:FJ有N块地,这些地之间有P条双向路,每条路的都有固定的长度l.现在要你找出从第1块地到第n块地的T条不同路径,每条路径上的路不能与先前的路径重复,问这些路径中的最长路的最小是多少. 思 ...

  4. HDOJ---2236 无题II[二分枚举+匈牙利]

    无题II Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. Brownie Slicing(二分枚举答案)

    描述 Bessie has baked a rectangular brownie that can be thought of as an RxC grid (1 <= R <= 500 ...

  6. POJ 2455 Secret Milking Machine 二分枚举 + 最大流

    题目:http://poj.org/problem?id=2455 题意:给定一张无向图,有n个节点p条边,要求在图中从1到n找到t条路径,并且使这t条路径中的最长边最小,输出这个最小的最长边 思路: ...

  7. ⭐算法入门⭐《二分枚举》简单15 —— LeetCode LCP 18. 早餐组合

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   小扣在秋日市集选择了一 ...

  8. HDU 2389(二分最大匹配优化算法,Hopcroft-Carp)

    HDU 2389(二分最大匹配优化算法,Hopcroft-Carp) 题目链接: 大致题意; 您能帮助客人在下雨之前尽可能多地找到一把雨伞? 给定所有客人的位置和跑步速度,雨伞位置,到下雨开始时的时间 ...

  9. 【二分枚举】04:网线主管

    还是二分搜索枚举解空间的题目. 代码思路基本上就是,找到解空间的上下限[base,top],然后main函数里面进行二分枚举,另外需要写一个判断某个值是否合法的函数. 04:网线主管 总时间限制:  ...

最新文章

  1. 《The Elements of Statistical Learning》 chp3 Linear Models for Regression
  2. DeepMind详解新WaveNet:比原来快千倍,语音更自然 | 附论文
  3. 二十、 二叉树的同构
  4. 1105 Spiral Matrix (25 分)【难度: 一般 / 知识点: 模拟】
  5. 本地mysql备份至rds_阿里云RDS备份在本地mysql快速还原
  6. Leetcode--144. 二叉树的前序遍历(迭代递归)
  7. mysql r_R之RMySQL
  8. java发送文本邮件_1、java实现发送纯文本邮件
  9. 如何结合短信和邮件有效的监控网站
  10. 云知梦Jquery视频教程 jq重入门到精通 共12集
  11. sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧
  12. SuperMap iDesktop常见问题解答集锦(九)
  13. Java LeetCode每日一题-从易到难带你领略算法的魅力(一):上升下降字符串
  14. ubuntu20.04 跳过grub
  15. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java面向中小学生的植物科普网站6s4f9
  16. Python爬取起点中文网月票榜前500名网络小说介绍
  17. 李笑来——我的销售概念与方法论
  18. Framework定制系列(一)-----SystemUI NavigationBar导航栏上滑返回Launcher
  19. matlab工具箱使用总结
  20. 基于Python新生报到系统设计与实现 开题报告

热门文章

  1. html语言词典,编程字典-HTML5语法
  2. 神策 2020 数据驱动用户大会报名开启
  3. 埋点全解 2:iOS 应用程序状态
  4. 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
  5. 卜晓军:IBM的大数据战略全面升级
  6. iOS 富文本类库RTLabel
  7. OGEngine_粒子效果
  8. [转]开源项目学习方法ABC
  9. 用UltraIso刻录XP到U盘安装是不行的
  10. Android 基础教程之-------Android ProgressBar的使用!