题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1103

题意:中文题诶~

思路:抽屉原理

对于两个数a, b, 若a=b(modx),那么(a-b)%x=0;

所以求满足题意的数列,我们可以在连续子序列里面找到.

证明:我们用num[i]存储a[i]的前缀和mod n的值,我们有n个前缀和,其mod n的值有1~n-1 n-1种可能(如果为0的话说明第1个元素到第i个元素的和是n的倍数啦),由抽屉原理可知,必定至少有两个值是相同的,也就是说我们可以从连续子序列中找到满足题意的数列;

那么我们只要标记num[i]在之前是否出现过就好了啦。。。

代码:

 #include <iostream>
#define MAXN 50010
#define ll long long
using namespace std; int a[MAXN], vis[MAXN];
ll num[MAXN]; int main(void){
ios::sync_with_stdio(false), cin.tie(), cout.tie();
int n;
bool flag=true;
cin >> n;
for(int i=; i<=n; i++){
cin >> a[i];
num[i]=(num[i-]+a[i])%n;
}
for(int i=; i<=n; i++){
if(!num[i]){
cout << i << endl;
for(int j=; j<=i; j++){
cout << a[j] << endl;
}
return ;
}else if(vis[num[i]]){
cout << i-vis[num[i]] << endl;
for(int j=vis[num[i]]+; j<=i; j++){
cout << a[j] << endl;
}
return ;
}else{
vis[num[i]]=i;
}
}
return ;
}

51nod1103(抽屉原理)的更多相关文章

  1. CodeForces485A——Factory(抽屉原理)

    Factory One industrial factory is reforming working plan. The director suggested to set a mythical d ...

  2. uva202:循环小数(循环节+抽屉原理)

    题意: 给出两个数n,m,0<=n,m<=3000,输出n/m的循环小数表示以及循环节长度. 思路: 设立一个r[]数组记录循环小数,u[]记录每次的count,用于标记,小数计算可用 r ...

  3. hdu 3303 Harmony Forever (线段树 + 抽屉原理)

    http://acm.hdu.edu.cn/showproblem.php?pid=3303 Harmony Forever Time Limit: 20000/10000 MS (Java/Othe ...

  4. 《Mathematical Olympiad——组合数学》——抽屉原理

    抽屉原理可以说是组合数学中最简单易懂的一个原理了,其最简单最原始的一个表达形式:对于n本书放到n-1个抽屉中,保证每个抽屉都要有书,则必存在一个抽屉中有2本书.但是这个简单的原理在很多问题中都能够巧妙 ...

  5. poj2356 Find a multiple(抽屉原理|鸽巢原理)

    /* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...

  6. POJ- Find a multiple -(抽屉原理)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6452   Accepted: 2809   Special Judge D ...

  7. 51nod 1103 N的倍数(抽屉原理)

    1103 N的倍数 题目来源: Ural 1302 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍 ...

  8. CF618F Double Knapsack 构造、抽屉原理

    传送门 首先,选取子集的限制太宽了,子集似乎只能枚举,不是很好做.考虑加强限制条件:将"选取子集"的限制变为"选取子序列"的限制.在接下来的讨论中我们将会知道: ...

  9. poj 2356 (抽屉原理)

    题目链接:http://poj.org/problem?id=2356 题目大意:给你n个数,要你从n个数选出若干个数,要求这若干个数的和是n的倍数,输出选择数的个数,以及相应的数. 解题思路: 以下 ...

随机推荐

  1. Carthage的使用

    1.安装Carthage https://github.com/Carthage/Carthage/releases 2.进入Cartfile文件所在的目录地址 cd 拖入文件Cartfile,把最后 ...

  2. could not read symbols: Archive has no index;

    could not read symbols: Archive has no index; run ranlib to add one collect2: ld returned 1 exit sta ...

  3. debian支持的系统架构介绍

    debian系统支持类型有armel.armhf.i386.amd64.mips.mipsel, powerpc.sparc.s390.s390x等. 详细对比文章见https://www.debia ...

  4. hdmap相关单词

    交叉口(junction) 交叉口组(junctiongroup)

  5. CSS+HTML+JQuery简单菜单

    1. [代码]style <style type="text/css">    body,ul,li,a{        margin:0;        paddin ...

  6. POJ 2151 Check the difficulty of problems:概率dp【至少】

    题目链接:http://poj.org/problem?id=2151 题意: 一次ACM比赛,有t支队伍,比赛共m道题. 第i支队伍做出第j道题的概率为p[i][j]. 问你所有队伍都至少做出一道, ...

  7. hls协议(最清晰的讲解)

    今天来介绍一下HLS协议,这个协议是由苹果公司提出并推广开来的.来一段维基百科的定义. HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议.是 ...

  8. dead reckoning variation

    Targeting A target is a structure of information that describes the state, and change of state, of a ...

  9. Nginx均衡负载配置

    前言:Nginx也是一种服务器,反向代理服务器.单一tomcat能承受的并发访问量在150-200之间,还是在比较理想的情况下,当并发量超出这个范围,便需要Nginx实现多个tomcat的均衡负载,但 ...

  10. Linux网络编程socket错误分析

    socket错误码: EINTR: 阻塞的操作被取消阻塞的调用打断.如设置了发送接收超时,就会遇到这种错误. 只能针对阻塞模式的socket.读,写阻塞的socket时,-1返回,错误号为INTR.另 ...