AcWing 2058. 笨拙的手指(暴力枚举)

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 2058. 笨拙的手指(暴力枚举)相关的知识,希望对你有一定的参考价值。

题目链接

https://www.acwing.com/problem/content/2060/

思路

因为二进制和三进制有一位是错误的,那么我们直接二重循环枚举每一位,看更改后是否满足相等,如果是的话那么这就是答案,否则继续枚举

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\\n"

ll ans;

bool fg(string a,string b) 
    int aa = 0;
    int bb = 0;
    for(int i = a.size()-1,j = 0; i >= 0; --i,j++) 
        aa += (a[i]-'0') * (1<<j);
    
    for(int i = b.size()-1,j = 1;i >= 0; --i,j*=3)
        bb += (b[i]-'0') * (j);
    
    ans = aa;
    return aa==bb;


bool check(int la,int lb,string a, string b)
    a[la]=a[la]=='0'?'1':'0';
    int k = b[lb]-'0';
    for(int i = 0;i <= 2; ++i) 
        if(i == k) continue;
        b[lb] = i + '0';
        if(fg(a,b)) return true;
    
    return false;


int main()

    string a,b;
    cin>>a>>b;
    int n = a.size();
    int m = b.size();
    for(int i = 0;i < n; ++i) 
        for(int j = 0;j < m; ++j) 
            if(check(i,j,a,b))
                cout<<ans<<endl;
                return 0;
            
        
    
    
    
    return 0;

以上是关于AcWing 2058. 笨拙的手指(暴力枚举)的主要内容,如果未能解决你的问题,请参考以下文章

AcWing 1月9日每日一题 2058. 笨拙的手指

《寒假每日一题》2022/1/2 AcWing 2058.笨拙的手指

寒假每日一题2022week1 未完结

AcWing 1813. 方块游戏(暴力枚举)

AcWing 1855. 愤怒的奶牛(枚举+暴力)

AcWing 1875. 贝茜的报复(数学+暴力枚举)