zoukankan      html  css  js  c++  java
  • Find a multiple

    poj2356:http://poj.org/problem?id=2356

    题意:给定n个数,从中选出连续的若干个,使得和为n的倍数。多解时输出任意解。

    分析:设sum[0]=0,sum[i]表示数列中第1~i个数的和对n取余的结果。那么现在有sum[0~n],n + 1个整数,分布在区间 [0, n-1]上的n个整数点上,则至少有两个数会分布在同一个整数点,即存在sum[i]==sum[j]且i!=j。这样以来第i+1~j个数即为 所求。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 int s[10003], a[10003];
     7 int start,end,n;
     8 bool flag;
     9 int main(){
    10     while(~scanf("%d",&n)){
    11        flag=false;s[0]=0;
    12     for(int i=1;i<=n;i++){
    13       scanf("%d",&a[i]);
    14      s[i]=(s[i-1]+a[i])%n;    
    15     }
    16     for(int i=1;i<=n;i++){
    17        if(s[i]==0){
    18         flag=true;end=i;start=0;
    19              break;
    20           }
    21     for(int j=i+1;j<=n;j++){
    22        if(s[i]==s[j]){
    23         flag=true;start=i;end=j;
    24             break;
    25           }
    26        }
    27        if(flag)break;
    28     } 
    29     if(flag){
    30         printf("%d
    ",end-start);
    31     for(int i=start+1;i<=end;i++)
    32        printf("%d
    ",a[i]);
    33     }
    34     else
    35     printf("0
    ");
    36   }
    37 }
    View Code
  • 相关阅读:
    慕课前端入门-HTML5属性变化
    黑马jQuery教程4
    黑马jQuery教程3
    黑马JQuery教程2
    2017-03-15
    按钮图标化
    AES MFC实现
    CButtonST类简介使用方法
    VS资源编辑器常见错误RC1000到RC1208
    MFC单文档程序添加HTML帮助支持
  • 原文地址:https://www.cnblogs.com/chujian123/p/3389854.html
Copyright © 2011-2022 走看看