zoukankan      html  css  js  c++  java
  • poj 3370 Halloween treats

    题目地址:http://poj.org/problem?id=3370

    一篇很好的博客:http://www.cppblog.com/pcfeng502/archive/2009/10/18/98902.aspx

    #include<stdio.h>
    #include<string.h>
    #define maxn 100005
    int a[maxn],b[maxn],num;
    void work(int c,int n)
    {
    	int sum = 0,t;
    	memset(b,0,sizeof(b));
    	for(int i = 1; i <= n; i++)
    	{
    		sum += a[i];
    		t = sum%c;
    		sum %= c;
    		if(t == 0)
    		{//当从第一个元素起到第i个元素的和可以被c整除,则1 -> i 即为所求的一个解
    			for(int j = 1; j <= i; j++)
    				printf("%d ",j);
    			return ;
    		}
    		else
    		{
    			if(b[t] > 0)
    			{// 当i > j 时sum[i]%c == sum[j]%c 则sum[i] = m*c +r ,sum[j] = n*c + r,sum[i] - sum[j] = m*c - n*c + r - r = (m-n)*c
    			//所以从j的下一个元素开始到到i元素的和可被c整除,则j+1 - i 即为所求解。 
    				for(int j = b[t]+1; j <= i; j++)
    					printf("%d ",j);
    					return; 
    			}
    		}
    		b[t] = i;
    	}
    }
    void init(int n)
    {//输入数据,
    	for(int i = 1; i <= n;i++)
    		scanf("%d",&a[i]);
    }
    int main()
    {
    	int c,n;
    	while(scanf("%d%d",&c,&n) != EOF && c+n)
    	{
    		init(n);
    		work(c,n);
    		printf("\n");
    	}
    	return 0;
    }
    


  • 相关阅读:
    SQL exists( select 1 from
    svn不知道这样的主机
    SVN 操作指南
    SVN导出/导入、SVN备份/还原 【小白版】
    Asp.net窄屏页面 手机端新闻列表
    装饰者模式
    适配器模式
    原型模式
    建造者模式
    抽象工厂方法
  • 原文地址:https://www.cnblogs.com/LUO257316/p/3220819.html
Copyright © 2011-2022 走看看