• Problem H. The Fence 通过取余判重,求得某个区间的某些个数为某个数的倍数。


    /**
    题目:Problem H. The Fence
    链接:https://vjudge.net/problem/Gym-101090H
    题意:给定一个字符串,只有0或者1;
    问:假如两个不同的1之间的0,1数量是k的倍数(包括0倍)则输出这两个1的位置;
    思路:%k;直到遇到两个相同的余数,说明之间的01数量为k的倍数。
    */
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N = 1e5 + 10;
    int vis[N];
    char s[N];
    int main(){
        int k;
        cin>>k;
        scanf("%s",s+1);
        int len = strlen(s + 1);
        memset(vis,0,sizeof(vis));
        for(int i = 1;i <= len;i++){
            if(s[i] == '1'){
                if(vis[(i + k -1)%k]){
                        printf("%d %d
    ",vis[(k - 1 + i)%k],i);
                        return 0;
                }
                vis[i%k] = i;
            }
        }
        printf("0 0
    ");
        return 0;
    }
  • 相关阅读:
    DBHelper
    ASP.NET WEBAPI oken验证
    市面上的网盘和搜索网盘资源网站
    C#批量删除注释与空行
    DB help
    抽象工厂1
    抽象工厂
    单例模式的八种写法
    Docker概念
    Django的安装
  • 原文地址:https://www.cnblogs.com/xiaochaoqun/p/6601671.html
Copyright © 2020-2023  润新知