zoukankan      html  css  js  c++  java
  • 校赛1007题的经典解法

    Problem Description
    Payne和Quincy是一对好Basefriend,即使在“六一光棍节”这天,寂寞无聊的Payne决定调戏一下Quincy。
    他在一张纸上写下了一串数字,然后来到Quincy面前。
    “嗨,Quincy,我看你也挺无聊的,来验证一下你的智商吧。”
    “噢,Payne,你又有什么鬼主意了?”
    “嘿,听一听吧,会很有趣的!”
    “嗯,那你说吧。”
    “哈,听着,你看这里有一串数。我们从中取一段连续的数字,比如你看这的1357902468147258369,我们从中取出一段长度为7的子串,可以是5790246,或者是0246814。这样我们就得到了一些新的数。然后,让我们看看长度为7的所有子串所表示的数里面,共有多少个数是9的倍数。”
    “哼,多简单的游戏啊。小孩都会算。”
    “呵,那咱俩来试试?我写一个数,你来告诉我答案?”

    Input
    一个正整数T(1 ≤ T ≤ 100),表示有T组数据。
    以下每组数据各有两行输入
    第一行包含两个正整数N,M(1 ≤ N ≤ 10^6,1 ≤ M ≤ 10^3),表示母串长度为N,子串长度为M。
    第二行包含一个大数,大数按十进制表示,共有N位。

    Output
    每组数据输出一行,包含一个数,表示母串中所有长度为M的子串中,为9的倍数的个数
    Sample Input
    2 3 2 181 5 3 18171
    Sample Output
    2 1 #include<stdio.h>#define MAXN 1000000
    int t;
    main()
    { int i,j,k,count; long n,m,aa; char a[MAXN]; scanf("%d",&t); for(i=0;i<t;i++) {  scanf("%d%d",&n,&m);  scanf("%s",a);  count=0;  for(j=0;j+m<=n;j++)         {                 if(j==0)                 {                  aa=0;                      for(k=0;k<m;k++)                            aa+=a[k]-'0';                 }else                    {                                aa-=a[j-1]-'0';                                aa+=a[j+m-1]-'0';                 }                        if(!(aa%9))                         count++;         }        printf("%d\n",count); } system("pause"); return 0;}
  • 相关阅读:
    2014年度辛星css教程夏季版第七节
    2014年度辛星css教程夏季版第六节
    2014年度辛星css教程夏季版第五节
    终于见识到垃圾站了
    2014年度辛星css教程夏季版第四节
    2014年度辛星css教程夏季版第三节
    2014年度辛星css教程夏季版第二节
    MySQL查询-分组取组中某字段最大(小)值所有记录
    PHP获取当前时间
    Mysql常用数据类型归纳总结1
  • 原文地址:https://www.cnblogs.com/chaosheng/p/2329587.html
Copyright © 2011-2022 走看看