HDU 5265 pog loves szh II (二分查找)
【题目链接】click here~~
【题目大意】在给定 的数组里选两个数取模p的情况下和最大
【解题思路】:
思路见官方题解吧~~
弱弱献上代码:
Problem : 5265 ( pog loves szh II ) Judge Status : Accepted
RunId : 13961817 Language : G++ Author : javaherongwei
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta #include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=1e6;
__int64 num[N],n,m,p,k,ans,cnt,sum;
int my_pow(int a,int n,int mod)
{
int ans=a,tmp=1;
while(n)
{
if(n&1) tmp*=ans;
ans*=ans%mod;
n>>=1;
}
return tmp;
}
int main()
{
while(~scanf("%I64d%I64d",&n,&p))
{
for(int i=0; i<n; ++i)
{
scanf("%I64d",&num[i]);
num[i]%=p;
}
sort(num,num+n);
__int64 maxx=(num[n-1]+num[n-2])%p;///另外一种情况最大值
__int64 maxx2;
for(int i=0; i<n; ++i)
{
maxx2=upper_bound(num,num+n,p-num[i]-1)-num-1;
if((num[i]+num[maxx2])<p&&(maxx2>i))
maxx=max((num[i]+num[maxx2])%p,maxx);
}
printf("%I64d\n",maxx);
}
return 0;
}
/*
因为序列中的数可能超过P,所以将全部的数读入后进行取模操作。
之后将取模后的全部数从小到大排序。题目要求我们求不同位置的两个数的和在取模意义下的最大值。
而如今全部数都是小于P且排好序的。因此设我随意选了两个数是X和Y,显然0≤X+Y≤2P−2。
若X+Y<P,则这次选数的答案就是X+Y,若X+Y≥P。则答案是X+Y−P。
那么我们能够这样做:将当中最大的两个数字相加取模,设为一个可能的答案记录在ANS中。 这个答案是另外一种情况的最大值。再对排序好的序列进行枚举,对每一个枚举到的数,
找出最大的数,使这个数与枚举到的数相加后的和最大且小于P,将之记为可能的答案并于之前找到的最大值ANS进行比較。 这个答案是第一种情况中的可能的最大值。而普通的枚举是要超时的,可是我们发现假设从小到大枚举第一个数,
那么还有一个匹配的数显然是从大到小的,因此能够用一个NOW记录当前还有一个匹配的数的位置,
每次枚举时NOW递减至符合条件。能够做到O(n)的时间复杂度。
综上所述,时间复杂度为高速排序的O(nlogn),空间复杂度为O(n)。注意一些特殊情况如同一个位置不能多次选。 4 4
1 2 3 0
4 4
0 0 2 2
Sample Output
3
2
*/
HDU 5265 pog loves szh II (二分查找)的更多相关文章
- HDU 5265 pog loves szh II 二分
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5265 bc(中文):http://bestcoder.hdu.edu.cn/contests ...
- hdu 5265 pog loves szh II
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5265 pog loves szh II Description Pog and Szh are pla ...
- hdu 5265 pog loves szh II STL
pog loves szh II Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...
- HDU 5265 pog loves szh II (技巧)
题意:给一个数字序列,要求再其中找到两个数,其和再模p的结果是最大的,求此和. 思路:先将输入的元素模p,排序.结果可能有两种情况: (1)a+b大于p:肯定由两个最大的数之和来产生. (2)a+b小 ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 /* 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 当然有可能两个数和超过p,那么an的值最优,每 ...
- hdu 5266 pog loves szh III(lca + 线段树)
I - pog loves szh III Time Limit:6000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I ...
- hdu 5264 pog loves szh I
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5264 pog loves szh I Description Pog has lots of stri ...
- hdu 5264 pog loves szh I 水题
pog loves szh I Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...
- HDU 5266 pog loves szh III(区间LCA)
题目链接 pog loves szh III 题意就是 求一个区间所有点的$LCA$. 我们把$1$到$n$的$DFS$序全部求出来……然后设$i$的$DFS$序为$c[i]$,$pc[i]$为$c ...
随机推荐
- Android(java)学习笔记191:ContentProvider使用之利用ContentProvider备份和还原手机短信(掌握)
1. 通过阅读系统源码我们知道: 短信的内容提供者: content://sms/ 系统短信的内容提供者的路径 2. 利用ContentProvider备份和还原手机短信: (1 ...
- Linux下 SpringBoot jar项目后台运行、查看、停用
运行java jar: nohup java -jar **-0.0.1-SNAPSHOT.jar & 查看进程: 采用top或者ps aux命令.一般 如果后台是springboot,jar ...
- Matrix (二分套二分
Given a N × N matrix A, whose element in the i-th row and j-th column Aij is an number that equals i ...
- Laravel Excel模板导出-带图片
Laravel Excel版本 3.1 1.数据准备 建个2个表,加点数据,控制器中查数据,给模板使用. 表1-order:id, order_no, img_path, note 表2-order_ ...
- OneinStack 安装 LNMP 切换PHP版本
如果你的环境不是OneinStack安装的 ,可以略过这条博客了 注意:以下所有命令若提示权限不足 请在命令前加 sudo *** ①,首先查看当前已安装的PHP版本,我这里安装了好几个版本,你们可 ...
- html页面比较长,如何用js实现网页一打开显示在网页的中部?
加入js代码 <style type="text/css"> body { height: 2000px; } </style> <script ty ...
- Python轮换
switch_source()用于获取文本信息rewrite_source()用于将信息顺序轮换,其参数times表示要轮换多少次, def switch_source(): tmp = [] wit ...
- android ListView几个比较特别的属性
由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表 首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你 ...
- python爬取网页图片
# html:网页地址 def getImg2(html): soup = BeautifulSoup(html, 'html.parser') href_regex = re.compile(r'^ ...
- 采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)
QCustomPlot是一个开源的基于Qt的第三方绘图库,能够绘制漂亮的2D图形. QCustomPlot的官方网址:https://www.qcustomplot.com/ 从官网下载QCustom ...