[2016-04-27][codeforces][665D - Simple Subset]

  • 时间:2016-04-27 15:16:14 星期三

  • 题目编号:[2016-04-27][codeforces][665D - Simple Subset]

  • 题目大意:给定n个数字的集合A,问子集最大能有多大,使得子集中两两之和是素数,输出大小和任一这样子集

  • 分析:

    • 至多一个1:

      • 首先 从A取任意3个数
      • 如果这3个数字中至多1个 1
      • 由容斥原理可知,一定有两个数之和是偶数,并且这个偶数之和大于2(一定不是素数),所以答案子集中,大于1的数字至多只能有两个,
      • 推广到整个A,就是如果A中至多含有1个1,时,子集最多只有2个数字,那么答案就是
        1. 没有两个数字之和是素数,
        2. 存在某两个数字之和是素数,(即使有多对,只能输出一对)
    • 如果多个1,那么答案就有
      1. 全部都是1
      2. 除了1之外,还有一个数字,这个数字+1之后是素数
  1. #include<cstdio>
  2. #include<cstring>
  3. using namespace std;
  4. const int maxn = 1E3 + 10;
  5. const int maxp = 1E6*2 + 10;
  6. int isnpri[maxp],a[maxn];
  7. void getpri(){
  8. memset(isnpri,0,sizeof(isnpri));
  9. for(int i = 2 ; i < maxp + 10 ; ++i){
  10. if(isnpri[i]) continue;
  11. for(int j = i * 2 ; j < maxp; j += i){
  12. isnpri[j] = 1;
  13. }
  14. }
  15. }
  16. int main(){
  17. getpri();
  18. int n,cnt1 = 0;
  19. scanf("%d",&n);
  20. for(int i = 0 ; i < n ; ++i){
  21. scanf("%d",&a[i]);
  22. if(a[i] == 1) ++cnt1;
  23. }
  24. if(cnt1 > 1){
  25. for(int i = 0 ; i < n ; ++i){
  26. if(a[i] != 1 && !isnpri[a[i] + 1]){
  27. printf("%d\n%d",cnt1 + 1,a[i]);
  28. for(int j = 0 ; j < cnt1;++j){
  29. printf(" 1");
  30. }
  31. return 0;
  32. }
  33. }
  34. printf("%d\n",cnt1);
  35. for(int j = 0 ; j < cnt1;++j){
  36. printf("1 ");
  37. }
  38. return 0;
  39. }
  40. for(int i = 0 ; i < n ; ++i){
  41. for(int j = 0 ; j < n ; ++j){
  42. if(i != j && !isnpri[a[i] + a[j]]){
  43. printf("2\n%d %d",a[i] , a[j]);
  44. return 0;
  45. }
  46. }
  47. }
  48. printf("1\n%d",a[0]);
  49. return 0;
  50. }

来自为知笔记(Wiz)

时间: 2024-10-29 10:48:21

[2016-04-27][codeforces][665D - Simple Subset]的相关文章

爆打团队 2016.04.27 站立会议

1. 时间 : 19:00--19:15 2. 人员 : 高鑫 组长 http://www.cnblogs.com/gaolzzxin/ 严一格 http://www.cnblogs.com/yyyyg/ 彭杨 http://www.cnblogs.com/pengy813/ 包玲玲 http://www.cnblogs.com/linglingbao/ 吴军 http://www.cnblogs.com/wujunzero/ 3. 会议内容: 回顾昨天: 测试真beta版本性能. 计划今天:

2016/04/27测试

@RequestMapping("tolocationCOAManager")    public String index(HttpServletRequest request,HttpServletResponse response){       return "base/mps_user/locationCOAManager";    }

[野狐行][2016/04/11][群直播系列2][那些年让我们郁闷不已的游戏保护]

最近应广大朋友的建议,增加群内直播系列,主要内容包括不仅限于“辅助行业探讨,内幕揭秘,行业八卦”.每周周末,群内直播系列:1.2016/04/02 第一期下载地址: http://pan.baidu.com/s/1bpnwPeZ 2.2016/04/11 第二期下载地址: http://pan.baidu.com/s/1nvs22xj

KaOS 2016.04 发布,桌面 Linux 发行版

KaOS 2016.04 发布了,KaOS是一份桌面Linux发行,其特色在于最新版本的KDE桌面环境及其他流行的使用Qt工具包的软件程序.它最初基于Arch Linux,但从2013年四月起,开发者们开始创建他们自己的软件包,现在这些软件包可以从KaOS自己的软件仓库里获得.KaOS采用滚动发布开发模 式,并且只面向64位计算机系统. 该版本主要是为了纪念KaOS三周年而发布的,支持Qt 5.6,桌面得到较大的更新, QtWebengine被qupzilla替代作为默认的浏览器,不在需要手动更

分布交互式CosiMate 8.1 2016.04多学科协同仿真计算平台

分布交互式CosiMate 8.1 2016.04多学科协同仿真计算平台 电磁人体天线模型管理分析工具EMCoS Studio 2017 优化工具Keysight 89600 VSA WLA 22.21 5G物联网雷达信号设计 CosiMate技术提供了一种解决方案来克服模拟集成的大规模动态系统的难度.在实际的大型Simulink模型上测量到2到11的潜在加速度.通过传统的分割技术(将全阶模型分解成几个较小的部分)并在单台或多台计算机上进行模拟,实现了模拟时间的显着减少.QQ:16264558

CodeForces - 344B Simple Molecules (模拟题)

CodeForces - 344B Simple Molecules Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Mad scientist Mike is busy carrying out experiments in chemistry. Today he will attempt to join three atoms into

[2016-04-26][codeforces][665C - Simple Strings]

时间:2016-04-26 10:11:21 星期二 题目编号:[2016-04-26][codeforces][665C - Simple Strings] 题目大意:给定一个字符串,问最少需要更改多少字符,使得相邻的字母都不一样,输出更改后的字符串 分析: 贪心,从左往右扫一遍数组,更改相同的元素即可 遇到的问题: 注意,相同元素必须更改后面那个元素才是最优的答案. 比如 aaa 这种情况只能更改中间那个 #include<iostream> #include<string>

java 时间格式化(2016.04.12 12:32:55)

输入的时间格式如:2016.04.12 12:32:55所示: 想要获取一定格式的日期,时间的方法 1 String startString = "2016.04.25 12:25:44" 2 SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:s

分布式技术一周技术动态 2016.04.17

分布式系统实践 1. 架构的本质是管理复杂性,微服务本身也是架构演化的结果  http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=411129391&idx=1&sn=ebf06fb5cc4a5f57f86341ba4114cab8&scene=0#wechat_redirect 要点: 这篇文章介绍了携程, netflix和SoundCloud等知名互联网公司的微服务架构实践, 总结了微服务架构的演化本质上是管理架构复