http://www.bnuoj.com/bnuoj/problem_show.php?pid=4357

【题意】:在1000个数中选择3个之和是m的倍数,可能有多种选择方案,请输出标号排序最小的一组,并且三个标号按升序输出

【题解】:三层循环,转化成两层循环

  先将1000个数对m取余,存入mod数组,表示是否存在,并对该余数出现的位置进行标记保存,两层循环遍历两个数,用m-这两个数之和,看是否存在mod中,并且位置没有在之前的循环i、j中出现就可以。。。

【code】:

  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <algorithm>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. int arr[],mod[];
  10. vector<int> G[];
  11.  
  12. int isOK(int temp,int x,int y)
  13. {
  14. int i;
  15. for(i=;i<G[temp].size();i++)
  16. {
  17. //cout<<temp<<" "<<G[temp][i]<<" "<<x<<" "<<y<<endl;
  18. if(G[temp][i]!=x&&G[temp][i]!=y)
  19. {
  20. return i;
  21. }
  22. }
  23. return -;
  24. }
  25.  
  26. int main()
  27. {
  28. int n,m;
  29. scanf("%d%d",&n,&m);
  30. int i,j;
  31. memset(mod,,sizeof(mod));
  32. for(i=;i<=m;i++) G[i].clear();
  33. for(i=;i<n;i++)
  34. {
  35. scanf("%d",arr+i);
  36. arr[i]%=m;
  37. mod[arr[i]]++;
  38. // if(mod[arr[i]]==1) pos[arr[i]]=i;
  39. G[arr[i]].push_back(i);
  40. }
  41. int flag = ;
  42. for(i=;i<n;i++)
  43. {
  44. for(j=i+;j<n;j++)
  45. {
  46. int temp = ((m-arr[i]-arr[j])+m)%m;
  47. if(mod[temp]>=)
  48. {
  49. int id = isOK(temp,i,j);
  50. if(id!=-)
  51. {
  52. printf("%d %d %d\n",i+,j+,G[temp][id]+);
  53. flag=;
  54. break;
  55. }
  56. }
  57. }
  58. if(flag) break;
  59. }
  60. if(!flag) puts("-1");
  61.  
  62. return ;
  63. }

bnuoj 4357 传送阵的更多相关文章

  1. hdu 4899 Hero meet devil

    传送阵:http://acm.hdu.edu.cn/showproblem.php?pid=4899 题目大意:给定一个DNA序列,求有多少长度为m的序列与该序列的最长公共子序列长度为0,1...|S ...

  2. hdu 4898 The Revenge of the Princess’ Knight

    传送阵:http://acm.hdu.edu.cn/showproblem.php?pid=4898 题目大意:一个首尾相连的字符串,将其分为k个子串,使得最大的字串最小 将所有子串排序,输出第k小即 ...

  3. webpack配置命令

    从2015年开始,webpack就是当前最火的构建工具.跟着时代向前走.准没错.我们要追随大神的脚步.走在前端技术栈的前列.大神等等我. 由于webpack是基于nodejs环境下的.所以先安装nod ...

  4. 学习zepto.js(原型方法)[2]

    接着昨天的来,继续说原型方法,昨天的传送阵(昨天出了点小意外,博文经过WP手机的UC浏览器进行编辑后标签就露出来了- -,现已修复); $.grep(): 作用与Array.filter类似(其实就是 ...

  5. 总结CSS3新特性(Animation篇)

    动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@keyframe来完成关键帧动画; @keyframe用法: @keyframes name { 0% { to ...

  6. 总结CSS3新特性(选择器篇)

    CSS3新增了嗯- -21个选择器,脚本通过控制台在这里运行; ~: p ~ p { color : red;/*此条规则将用于p后边所有的p...就是除了第一个p的所有p,规则同p:not(:nth ...

  7. 2014 UESTC暑前集训搜索专题解题报告

    A.解救小Q BFS.每次到达一个状态时看是否是在传送阵的一点上,是则传送到另一点即可. 代码: #include <iostream> #include <cstdio> # ...

  8. hdu 4897 Little Devil I

    传送阵:http://acm.hdu.edu.cn/showproblem.php?pid=4897 题目大意:一棵树,三个操作:1.将某条链取反,2.将与某条链相邻的边取反,3.查询某条链上为1的边 ...

  9. 那些年我们学过的PHP黑魔法

    那些年我们学过的PHP黑魔法 提交 我的评论 加载中 已评论 那些年我们学过的PHP黑魔法 2015-04-10 Sco4x0 红客联盟 红客联盟 红客联盟 微信号 cnhonker_huc 功能介绍 ...

随机推荐

  1. [Yii2]Access to debugger is denied due to IP address restriction. The requesting IP address is

    在更新到正式平台,看到runtime/app.log 有 Access to debugger is denied due to IP address restriction. The request ...

  2. overflow:hidden清除浮动原理解析及清除浮动常用方法总结

    最近在看<CSS Mastery>这本书,里面有用overflow:hidden来清理浮动的方法.但是一直想不明白为什么能够实现清除浮动,查阅了网络上的解释,下面来总结一下. 一.首先来想 ...

  3. (转载)运行主机管理在openvswitch之上

    在这篇文章里介绍了如果运行主机管理在openvswitch之上,而不是单独配置一个物理网卡用于主机管理,并且所有的vm的流量还是通过openvswitch走的. Running Host Manage ...

  4. 归约函数reduce&映射数组map(笔记)

    function forEach(array,action){ ;i<array.length;i++) action(array[i]); } function reduce(combine, ...

  5. 关于easyui的一些小知识点(1)

    让layout布局自动适应浏览器宽度只需要加上fit="true"属性.

  6. UML——类和对象

  7. android64位机子兼容32位.so库文件

    http://blog.csdn.net/vhawk/article/details/49964475 猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到so库文件,猴子就不懂了, ...

  8. xheditor上传图片的java实现

    最近一个项目中因为框架的原因,很多文本编辑器都不兼容,最后找到xheditor,这个富文本编辑器的确不错,功能基本都能满足,只是上传图片的java接口需要自己写,因此,测试了两种方法,最终成功.分享给 ...

  9. Cocos2d-x实例:设置背景音乐与音效-HelloWorld场景实现

    HelloWorld场景就是游戏中的主菜单场景.HelloWorld.h文件代码如下: #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h& ...

  10. phpmyadmin安装教程及配置设置

    phpmyadmin安装教程及配置设置 | 浏览:20304 | 更新:2013-11-07 09:50 1.一般网上下载到的phpmyadmin是一个压缩包,我们将其释放到htdocs目录中,例如h ...