题目链接: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. Ruby 文件 FILE

    FileUtils.makedirs(LOCAL_DIR) unless File.exists?LOCAL_DIR require 'fileutils' Dir.mkdir(DATA_DIR) u ...

  2. ESP8266串口模块的基本使用【转】

    本文转载自:http://www.shaoguoji.cn/2017/01/15/ESP8266-usage/ ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸 ...

  3. struts2 自定义类型转化 第三弹

    1.Struts2的类型转化,对于8种原生数据类型以及Date,String等常见类型,Struts2可以使用内建的类型转化器实现自动转化:但对于自定义的对象类型来说,就需要我们自己指定类型转化的的方 ...

  4. 分享知识-快乐自己:SpringMvc整合遇到-前台传JSON参数,后台实体类对象接收

    前台数据转JSON对象: /** * * @param $myFrom:from表单 * @returns {{}} */ function from($myFrom) { var ebookEntr ...

  5. hdu 6103(Kirinriki)

    题目链接:Kirinriki 题目描述: 找两个不重叠的字符串A,B. 使得dis(A,B)<=m;\(dis(A,B)= \sum _{i=0}^{n-1} \left | A_i-B_{n- ...

  6. 2018.3.3 How too much fructose may cause liver damage

    Fructose is the sweetest of the natural sugars. As its name suggests, it is found mainly in fruits. ...

  7. 【LeetCode】039. Combination Sum

    题目: Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all uniq ...

  8. Python3解leetcode Maximum Subarray

    问题描述: Given an integer array nums, find the contiguous subarray (containing at least one number) whi ...

  9. 查看MySql数据库物理文件存放位置

    查找数据库文件位置使用命令 show global variables like "%datadir%";

  10. AD 学习

    http://blog.csdn.net/lingpaoershiyishiji/article/details/9139527