【题目链接】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 (二分查找)的更多相关文章

  1. HDU 5265 pog loves szh II 二分

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5265 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  2. 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 ...

  3. 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? ...

  4. HDU 5265 pog loves szh II (技巧)

    题意:给一个数字序列,要求再其中找到两个数,其和再模p的结果是最大的,求此和. 思路:先将输入的元素模p,排序.结果可能有两种情况: (1)a+b大于p:肯定由两个最大的数之和来产生. (2)a+b小 ...

  5. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 /* 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 当然有可能两个数和超过p,那么an的值最优,每 ...

  6. hdu 5266 pog loves szh III(lca + 线段树)

    I - pog loves szh III Time Limit:6000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I ...

  7. 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 ...

  8. 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 ...

  9. HDU 5266 pog loves szh III(区间LCA)

    题目链接 pog loves szh III 题意就是  求一个区间所有点的$LCA$. 我们把$1$到$n$的$DFS$序全部求出来……然后设$i$的$DFS$序为$c[i]$,$pc[i]$为$c ...

随机推荐

  1. 迅为7寸工业触摸屏嵌入式平台可用于ARM嵌入式一体机

    7寸触摸屏介绍产品名称:7寸IPS高清屏幕分辨率:1280*800触摸屏类型:电容屏(五点触摸)接线方式: FPC 可应用于嵌入式一体机.自动售货机.广告机.智能自动终端.零售终端等 ARM平台处理器 ...

  2. oracle 表之间的连接

    排序 - - 合并连接(Sort Merge Join, SMJ): a) 对于非等值连接,这种连接方式的效率是比较高的. b) 如果在关联的列上都有索引,效果更好. c) 对于将2个较大的row s ...

  3. zTree 点击文字 勾选check

    callback: { onClick:function(event, treeId, treeNode){ console.info("onClick") var treeObj ...

  4. ssd运行过程中遇到的bug

    1.出现以下错误: 没有添加环境变量: https://github.com/weiliu89/caffe/issues/4 可以看到当前PYTHONPATH不再ssd1里面,所以需要修改,修改之后就 ...

  5. python send email

    #!/usr/bin/python # -*- coding: UTF-8 -*- # coding:utf8 from smtplib import SMTP_SSL from email.head ...

  6. 管理Fragments

    FragmentManager 为了管理Activity中的fragments,需要使用FragmentManager. 为了得到它,需要调用Activity中的getFragmentManager( ...

  7. Nginx(alias 和 root的区别)

    Nginx(alias 和 root的区别)1.alias 和 root 的区别: location /request_path/image { root /local_path/image/; } ...

  8. scrapy爬取简书整站文章

    在这里我们使用CrawlSpider爬虫模板, 通过其过滤规则进行抓取, 并将抓取后的结果存入mysql中,下面直接上代码: jianshu_spider.py # -*- coding: utf-8 ...

  9. SpringMVC Controller的返回类型

    Controller的三种返回类型中 ModelAndView类型 带数据带跳转页面 String 跳转页面不带数据 void 通常是ajax格式请求时使用 1返回ModelAndView contr ...

  10. 【ZOJ - 3780】 Paint the Grid Again (拓扑排序)

    Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or ...