首页 > 其他分享 >Codeforces Round #739 (Div. 3) F1

Codeforces Round #739 (Div. 3) F1

时间:2022-11-26 22:25:13浏览次数:44  
标签:F1 int Codeforces char 枚举 739 Div

F1. Nearest Beautiful Number (easy version)

很像网络赛北大出的那题 感觉这题是简化版
我们只需要把所有数都搞出来 然后二分即可
我们先枚举k1的情况
这个很简单 先枚举长度 然后枚举数
k
2的情况呢
我们也是先枚举长度 然后再枚举两个数为什么
然后最后1<<len的枚举每一位填第一个数还是第二个数
为了万无一失 我们还是unique一下
最后二分即可
最后我们发现这两个数加起来不超过1e5

vector<int>v[3];
void init(){
    v[1].push_back(0);
    for(int i=1;i<=10;i++){
        for(int j=1;j<=9;j++){
            string s;
            int k=i;
            while(k--){
                s+=char('0'+j);
            }
            v[1].push_back(stoll(s));
        }
    }
    for(int len=2;len<=10;len++){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                if(k==j)continue;
                for(int m=1;m<(1<<len)-1;m++){
                    string s;
                    for(int r=len-1;r>=0;r--){
                        if(m>>r&1){
                            s+=(char)('0'+k);
                        }else s+=(char)('0'+j);
                    }
                    v[2].push_back(stoll(s));
                }
            }
        }
    }
    sort(all(v[1]));
    sort(all(v[2]));
    v[2].erase(unique(all(v[2])),v[2].end());
}
void solve(){
    int n,m;cin>>n>>m;
    if(m==1)cout<<*lower_bound(all(v[m]),n)<<endl;
    else cout<<min(*lower_bound(all(v[m]),n),*lower_bound(all(v[1]),n))<<endl;
}

标签:F1,int,Codeforces,char,枚举,739,Div
From: https://www.cnblogs.com/ycllz/p/16928472.html

相关文章

  • 『题解』Codeforces 808D Array Division
    题目传送门解题思路首先统计\(n\)个数字和为\(sum\),那么一半就是\(sum=sum\div2\)从\(1\)到\(n\)枚举,累计进前缀和\(ans\)中,如果发现第\(i\)个数字累......
  • Codeforces Round #836 (Div. 2) A-D
    比赛链接A题意给一个字符串\(s\),对其加倍,即每个字符后面追加一个相同字符。加倍后可以重排列,要求构造一个回文串。题解知识点:构造。既然可以重排列了,那顺序是随意......
  • Codeforces Round #825 (Div. 2)
    A核心思路:这题的第一反应是直接统计a所有的0的数目和b所有的0的数目,然后两式相减。但是我们会发现一个问题,因为有些是可能不需要排序的,所有还有记录下a和b所有不同的个数......
  • NPC:费解的开关、sumdiv
    1、费解的开关​​https://ac.nowcoder.com/acm/contest/998/D​​题目大意:如图。分析:简单分析可知,每个开关至多点击1次,因为你同一个开关点2次又反转回来了相当于没点,而且题......
  • 【解题报告】CF DIV2 #ROUND 717 A~C D(只有思路)
    【解题报告】CFDIV2#ROUND717A~D​​比赛链接​​排名3694,终于上分了,回归pupil好耶A.TitforTat思路简单的贪心,字典序最小那就让前面的-1,然后+1全部加到最后一个数......
  • 【解题报告】CF DIV2 #ROUND 715 A~D
    【解题报告】CFDIV2#ROUND715A~D​​比赛链接​​​rating,已经无所谓了hhB想了个假算法,卡了半天,C也没时间看,我蠢爆了。A.AverageHeight思路速A了,先把奇数全部输出,然......
  • 【解题报告】CF DIV2 #ROUND 716 A~C
    【解题报告】CFDIV2#ROUND716A~C​​比赛链接​​​数学场/规律场A题5分钟速切,B题开始没看懂先看了C,发现C整不来,B整了半天打表找规律一发AC。D貌似要分块莫队之类的还......
  • CF1637H Minimize Inversions Number
    MinimizeInversionsNumber首先考虑\(k=1\),记\(g_i=\sum_{j=1}^{i-1}[p_i<p_j]-\sum_{j=1}^{i-1}[p_i>p_j]\),那么\(g_i\)表示将\(i\)移向最前面逆序......
  • 【解题报告】CF DIV3 #ROUND 734 A~D1
    【解题报告】CFDIV2#ROUND707A~D​​比赛链接​​比赛评价:一般性,有段时间没打了,甚至忘记多组输入hh。顺便吐槽一下翻译软件确实不行,以后还是直接看英文好了A.Polycarp......
  • LeetCode 739.每日温度(中等)
    题目描述:请根据每日​​气温​​​列表​​temperatures​​​,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用​​0​​来代替......