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

 

题目传送门

 1 /*
 2     贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找。贪心的思想是每次找到一个aj使得和为p-1(如果有的话)
 3                 当然有可能两个数和超过p,那么an的值最优,每次还要和an比较
 4     注意:不能选取两个相同的数
 5     反思:比赛时想到了%p和sort,lower_bound,但是还是没有想到这个贪心方法保证得出最大值,还是题目做的少啊:(
 6 */
 7 #include <cstdio>
 8 #include <algorithm>
 9 #include <cstring>
10 #include <cmath>
11 using namespace std;
12 
13 typedef long long ll;
14 const int MAXN = 1e5 + 10;
15 const int INF = 0x3f3f3f3f;
16 ll a[MAXN];
17 
18 int main(void)        //BestCoder Round #43 1002 pog loves szh II
19 {
20 //    freopen ("B.in", "r", stdin);
21 
22     int n;    ll p;
23     while (scanf ("%d%I64d", &n, &p) == 2)
24     {
25         for (int i=1; i<=n; ++i)    {scanf ("%I64d", &a[i]);    a[i] %= p;}
26         sort (a+1, a+1+n);
27 
28         ll ans = 0;
29         for (int i=1; i<=n; ++i)
30         {
31             int pos = lower_bound (a+1+i, a+1+n, p - a[i]) - a;    pos--;
32             if (pos <= n && pos != i)    ans = max (ans, (a[i] + a[pos]) % p);
33             if (i != n)    ans = max (ans, (a[i] + a[n]) % p);
34         }
35 
36         printf ("%I64d\n", ans);
37     }
38 
39     return 0;
40 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4560261.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nohup命令输出日志_逼格高又实用的Linux高级命令,开发运维都要懂

在运维的坑里摸爬滚打好几年了&#xff0c;我还记得我刚开始的时候&#xff0c;我只会使用一些简单的命令&#xff0c;写脚本的时候&#xff0c;也是要多简单有多简单&#xff0c;所以有时候写出来的脚本又长又臭&#xff0c;像一些高级点的命令&#xff0c;比如说Xargs 命令、…

JavaScript中OOP——面向对象中的继承/闭包

前 言 OOP JavaScript中OOP——>>>面向对象中的继承/闭包 1.1面向对象的概念 使用一个子类继承另一个父类&#xff0c;子类可以自动拥有父类的属性和方法。>>> 继承的两方&#xff0c;发生在两个类之间。1.2JS模拟实现继承的三种方式&#xff1a; 首先&am…

js常用字符串函数

这些东西是以前整理的&#xff0c;放到这里&#xff0c;有需要的可以看看~挺全的~ /** * anchor()方法 * 在对象中的指定文本两端放置一个有Name属性的HTML锚点 * strVariable.anchor(anchorString) anchorString为锚点名称 * 它本身不会检查其他的ahchor锚点是否有name指…

c++11中的智能指针

在C11中有四种智能指针&#xff0c;auto_ptr&#xff0c;shared-ptr&#xff0c;unique_ptr和weak-ptr&#xff0c;其中auto_ptr有许多不足之处&#xff0c;在C11中已经建议废弃使用。 1. shared_ptr std::shared_ptr智能指针可以通过共享指向对象的所有权&#xff0c;从而实现…

ubuntu14.04设置静态IP

啊&#xff0c;最近懒惰了&#xff0c;好久没有写博客了。 一般机器启动的时候会自动从DHCP服务器上面获取动态IP地址&#xff0c;这是一件很方便的事情&#xff0c;可以不用手动设置网络相关的蚕参数&#xff0c;但是有时候还是需要机器固定IP地址的。 第一步&#xff0c;编辑…

高中学历python培训靠谱吗_高中学历学完Python就能干人工智能?

最近Python大热&#xff0c;主要是人工智能的热度&#xff0c;昨天后院活动部介绍了一位女网友为男朋友选择Java还是Python&#xff0c;大量的程序员热议&#xff0c;也有人询问如何学习Python&#xff0c;比如这位网友询问高中学历学习Python是不是就能干人工智能。兄弟&#…

curl+个人证书(又叫客户端证书)访问https站点

目前&#xff0c;大公司的OA管理系统&#xff08;俗称内网&#xff09;&#xff0c;安全性要求较高&#xff0c;通常采用https的双向 认证模式。 首先&#xff0c;什么是https&#xff0c;简单的说就是在SSL协议之上实现的http协议&#xff08;get、post等操作&#xff09;。更…

boot.oat FC问题分析报告

【NE现场】 pid: 5252, tid: 5252, name: ndroid.contacts >>> com.android.contacts <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1458x0 0000000000000000 x1 0000000090d9892c x2 0000000000000001 x3 000000000000012cx4 …

c++ 虚函数的实现机制

转载自&#xff1a;http://blog.csdn.net/jiangnanyouzi/article/details/3720807 1、c实现多态的方法 其实很多人都知道&#xff0c;虚函数在c中的实现机制就是用虚表和虚指针&#xff0c;但是具体是怎样的呢&#xff1f;从more effecive c其中一篇文章里面可以知道&#xff…

powerdesigner 技巧

1.修改建表脚本生成规则。如果每个表格都有相同的字段&#xff0c;可以如下修改&#xff1a; Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值&#xff0c;可以直接修改如下&#xff1a;/* tablename: %TNAME% */ create…

勒索病毒攻击应急防范

北京时间5月12日&#xff0c;互联网上出现针对Windows操作系统的勒索软件&#xff08;Wannacry&#xff09;攻击案例。勒索软件利用此前披露的Windows SMB服务漏洞&#xff08;对应微软漏洞公告&#xff1a;MS17-010&#xff09;攻击手段&#xff0c;向终端用户进行渗透传播&am…

C++中虚析构函数的作用

C中的虚析构函数到底什么时候有用的&#xff0c;什么作用呢。 总的来说虚析构函数是为了避免内存泄露&#xff0c;而且是当子类中会有指针成员变量时才会使用得到的。也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的&…

苹果Swift编程语言入门教程【中文版】

http://www.25pp.com/news/news_60984.html转载于:https://www.cnblogs.com/niaowo/p/4564298.html

python正则表达式匹配aabb_Python正则表达式拆分多个匹配项

我正在尝试将包含2个不同字符的序列的字符串拆分为多个组.如果我们假设字符是a和b,则用于分组的纯文本规则为&#xff1a;>组包含0 a,后跟1 b>后面的所有a都包含在下一组中,除非我们在单词末尾.例如&#xff1a;处理测试后,目标是分成预期的组.tests [abab,ababab,aabab…

MEF 导入(Import)和导出(Export)

前言&#xff1a; MEF不同于其他IOC容器&#xff08;如&#xff1a;Castle&#xff09;很重要的原因在于它使用了特性化编程模型&#xff08;涉及到两个概念&#xff1a;“特性”和“编程模型”&#xff09;。 特性&#xff08;Attribute&#xff09;&#xff1a;举例来说就是我…

Android SimpleAdapter的参数

1.作用是ArrayList和 ListView的桥梁。这个ArrayList里边的每一项都是一个Map<String,?>类型。 ArrayList当中的每一项 Map对象都和ListView里边的每一项进行数据绑定一一对应。2.SimpleAdapter的构造函数&#xff1a;SimpleAdapter(Context context, List<? …

JMeter 教程汇总链接

http://www.360doc.com/content/14/0318/23/16361380_361732630.shtml 可以作为入门系列教程。 尽管网页也给出了视频链接&#xff0c;但是我不建议看视频学习&#xff01; 建议直接看文字&#xff08;可以跳跃式学习&#xff0c;视频的则是线性学习&#xff09;转载于:https:…

C++ STL中set底层实现方式

Q&#xff1a;STL中set底层实现方式&#xff1f; 为什么不用hash&#xff1f; A: 第一个问题:set底层实现方式为RB树&#xff08;即红黑树&#xff09;。 第二个问题: 首先set&#xff0c;不像map那样是key-value对&#xff0c;它的key与value是相同的。关于set有两种说法&…

python自动获取天气_用python获取天气数据,并作定时播报

原标题&#xff1a;用python获取天气数据&#xff0c;并作定时播报数据挖掘入门与实战 公众号&#xff1a; datadw思路1.调用和风天气的API&#xff0c;获取天气数据2.用百度语音API&#xff0c;将天气数据合成语音3.用树莓派每天早上定时播报天气(定时任务crontab Python脚本…

c++实现解析文件路径

注意&#xff1a;本实现只能解析类似linux下的路径&#xff0c;即“/data/a.txt”&#xff0c;而不能解析“c:\a.txt” 或者“c:\\a.txt”&#xff0c;但是应该很容易扩展改写实现此功能。 FilepathParse.h #include <string> using std::string;void parseFilepath(str…