• codeforces 758C


    codeforces 758C

    C. Unfair Poll

    introduction

    一个矩形方格,从前到后,再从后到前数k次,问每个方格最多/最少经过多少次,(x,y)方格上经过多少次

    method

    遍历是有周期的,一个周期经过2(n-1)m个方格,当n=1时,周期为m
    先求出周期,再求出剩下的次数,然后将剩下的次数,通过遍历分配到每一个方格上

    tips

    o(1)解决问题比较困难的时候,可以向o(n)求助

    Q&A

    conclusion

    • 想到了周期性,但是没有处理好外层循环和内层循环的关系,
    • 另外周期的起点确定也很有技巧,
    • 用公式确定次数比较复杂,用枚举的方法可以化繁为简

    reference

    http://codeforces.com/blog/entry/49880
    http://codeforces.com/problemset/submission/758/47274112

    code

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<cmath>
    #include<map>
    #include<istream>
    #include<cassert>
    #include<set>
    #define DEBUG(x) cout<<#x<<" = "<<x<<endl
    using namespace std;
    typedef long long ll;
    int main()
    {
    //    freopen("in.txt","r",stdin);
        ll n, m, k, x,y;
        cin>>n>>m>>k>>x>>y;
        ll trn;
        trn=n==1?m:2*(n-1)*m;
        ll mmx,mmn,srg;
        ll tms=k/trn;
        ll lft=k%trn;
        ll cnt[110][110];
        for(int ii=1;ii<=n ;ii++ ){
            for(int jj=1;jj<=m ;jj++ ){
                if(ii==1||ii==n)cnt[ii][jj]=tms;
                else cnt[ii][jj]=tms*2;
            }
        }
        ///对lft进行分配
        for(int ii=1;ii<=n ;ii++ ){
            for(int jj=1;jj<=m ;jj++ ){
                if(lft){
                    cnt[ii][jj]++;
                    lft--;
                }
            }
        }
        for(int ii=n-1;ii>=1 ;ii-- ){
            for(int jj=1;jj<=m ;jj++ ){
                if(lft){
                    cnt[ii][jj]++;
                    lft--;
                }
            }
        }
        mmx=max(cnt[1][1],max(cnt[2][1],cnt[n-1][1]));
        mmn=cnt[n][m];
        cout<<mmx<<" "<<mmn<<" "<<cnt[x][y];
    }
    
    
  • 相关阅读:
    让mysql查询强制走索引
    【转】起始时间和终止时间,循环输出每天
    【转】31个实用的find命令
    Hive数据倾斜解决办法总结
    网站架构之可扩展性
    网站架构之高可用性
    网站架构之可伸缩性
    kafka中的消费组
    MySQL知识点小结
    [数据挖掘]用户画像
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/10234806.html
Copyright © 2020-2023  润新知