头像

-浪漫主义狗-

$\href{https://lys2021.com}{\huge{\color{#48D1CC}{lys2021.com}}}$




离线:37分钟前


最近来访(722)
用户头像
acwing_1482
用户头像
勇敢珑珑
用户头像
念月丶瑾
用户头像
jdkjrejvm
用户头像
Fatin
用户头像
得得得得得得得得得得得得得得得
用户头像
清风qwq
用户头像
LonelyLove
用户头像
江南诗诗
用户头像
笙笙笙笙
用户头像
lihua777
用户头像
星烨下de少年
用户头像
chasem17
用户头像
Ggg_4
用户头像
Cola_ICE
用户头像
HF_7
用户头像
everfight
用户头像
pikink
用户头像
方攵飛夢想
用户头像
三三得玖

活动打卡代码 AcWing 4618. 两个素数

#include <bits/stdc++.h>
using namespace std;

bool is_prime(int n){
    for(int i = 2; i <= n / i; i ++){
        if(n % i == 0) return 0;
    }
    return 1;
}

void solve(){
    int x;
    cin >> x;
    for(int i = 2; i < x; i ++){
        if(is_prime(i) && is_prime(x / i) && x % i == 0){
            cout << i << " " << x / i << endl;
            break;
        }
    }
}

int main(){

    solve();

    return 0;

}


活动打卡代码 AcWing 1107. 魔板

#include <bits/stdc++.h>
using namespace std;

unordered_map<string,string> vis;

string op_A(string s){
    reverse(s.begin(), s.end());
    return s;
}

string op_B(string s){
    for(int i = 3; i > 0; i --){
        swap(s[i], s[i - 1]);
        swap(s[7 - i], s[8 - i]);
    }
    return s;
}

string op_C(string s){
    swap(s[1], s[2]);
    swap(s[1], s[5]);
    swap(s[1], s[6]);
    return s;
}

void bfs(string x, string y){
    queue<string> st;
    st.push(x);
    vis[x] = "";
    while(!st.empty()){
        string p = st.front(); st.pop();
        string t[3] = {op_A(p), op_B(p), op_C(p)};
        for(int i = 0; i < 3; i ++){
            if(!vis.count(t[i])){
                vis[t[i]] = vis[p] + char('A' + i);
                if(t[i] == y) return ;
                st.push(t[i]);
            }
        }
    }
}

void solve(){

    string sx = "12345678", sy;
    for(int i = 0; i < 8; i ++){
        int x;
        cin >> x;
        sy += (char)(x + '0');
    }

    if(sx != sy){
        bfs(sx, sy);
    }

    cout << vis[sy].size() << endl << vis[sy];

}

int main(){

    solve();

    return 0;

}


活动打卡代码 AcWing 173. 矩阵距离

#include <bits/stdc++.h>
using namespace std;

int n, m;

const int N = 1010;

char mp[N][N];
int ans[N][N];
bool vis[N][N];

queue<pair<int,int>> st;

int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0};

void bfs(){
    while(!st.empty()){
        auto p = st.front(); st.pop();
        for(int i = 0; i < 4; i ++){
            int x = p.first + dx[i], y = p.second + dy[i];
            if(x >= 0 && x < n && y >= 0 && y < m && !vis[x][y]){
                vis[x][y] = 1;
                ans[x][y] = ans[p.first][p.second] + 1;
                st.push({x, y});
            }
        }
    }
}

void solve(){

    cin >> n >> m;
    for(int i = 0; i < n; i ++){
        for(int j = 0; j < m; j ++){
            cin >> mp[i][j];
            if(mp[i][j] == '1'){
                vis[i][j] = 1;
                st.push({i, j});
            }
        }
    }

    bfs();

    for(int i = 0; i < n; i ++){
        for(int j = 0; j < m; j ++){
            cout << ans[i][j] << " ";
        }
        cout << endl;
    }

}

int main(){

    solve();

    return 0;

}


活动打卡代码 AcWing 3726. 调整数组

#include <bits/stdc++.h>
using namespace std;

void solve(){
    int n;
    cin >> n;
    int a = 0, b = 0;
    while(n --){
        int x;
        cin >> x;
        if(x % 2 == 0) a ++;
        else b ++;
    }
    if(a != 0 && b != 0) cout << "NO" << endl;
    else cout << "YES" << endl;
}

int main(){
    int _;
    cin >> _;
    while(_ --) solve();
    return 0;
}


活动打卡代码 AcWing 1100. 抓住那头牛

#include <bits/stdc++.h>
using namespace std;

int n, k;

const int N = 1e6 + 10;

bool vis[N];
int ans[N];

int bfs(){
    vis[n] = 1;
    queue<int> st;
    st.push(n);
    while(!st.empty()){
        int p = st.front(); st.pop();
        if(p == k) return ans[p];
        int x = p - 1, y = p + 1, z = p * 2;
        if(x >= 0 && !vis[x]){
            if(x == k) return ans[p] + 1;
            vis[x] = 1;
            ans[x] = ans[p] + 1;
            st.push(x);
        }
        if(y <= k && !vis[y]){
            if(y == k) return ans[p] + 1;
            vis[y] = 1;
            ans[y] = ans[p] + 1;
            st.push(y);
        }
        if(z <= 1e5 && !vis[z]){
            if(z == k) return ans[p] + 1;
            vis[z] = 1;
            ans[z] = ans[p] + 1;
            st.push(z);
        }
    }
}

void solve(){

    cin >> n >> k;

    cout << bfs() << endl;

}

int main(){

    solve();

    return 0;

}


活动打卡代码 AcWing 188. 武士风度的牛

#include <bits/stdc++.h>
using namespace std;

int n, m;

const int N = 1010;

int sx, sy;

char mp[N][N];
int ans[N][N];
bool vis[N][N];

int dx[] = {1, 1, -1, -1, 2, 2, -2, -2}, dy[] = {2, -2, 2, -2, 1, -1, 1, -1};

int bfs(int l, int r){
    vis[l][r] = 1;
    queue<pair<int,int>> st;
    st.push({l, r});
    while(!st.empty()){
        auto p = st.front(); st.pop();
        for(int i = 0; i < 8; i ++){
            int x = p.first + dx[i], y = p.second + dy[i];
            if(x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && mp[x][y] != '*'){
                if(mp[x][y] == 'H'){
                    return ans[p.first][p.second] + 1;
                }
                vis[x][y] = 1;
                ans[x][y] = ans[p.first][p.second] + 1;
                st.push({x, y});
            }
        }
    }
}

void solve(){

    cin >> m >> n;

    for(int i = 0; i < n; i ++){
        for(int j = 0; j < m; j ++){
            cin >> mp[i][j];
            if(mp[i][j] == 'K'){
                sx = i, sy = j;
            }
        }
    }

    cout << bfs(sx, sy) << endl;

}

int main(){

    solve();

    return 0;
}


活动打卡代码 AcWing 1076. 迷宫问题

#include <bits/stdc++.h>
using namespace std;

int n;

const int N = 1010;

typedef pair<int,int> PII;

int mp[N][N];
bool vis[N][N];

PII ans[N][N];

int dx[] = {0, -1, 0 , 1}, dy[] = {1, 0, -1, 0};

void bfs(int l, int r){
    vis[l][r] = 1;
    queue<PII> st;
    st.push({l, r});
    while(!st.empty()){
        auto p = st.front(); st.pop();
        for(int i = 0 ; i < 4; i ++){
            int x = p.first + dx[i], y = p.second + dy[i];
            if(x >= 0 && x < n && y >= 0 && y < n && !vis[x][y] && mp[x][y] == 0){
                st.push({x, y});
                vis[x][y] = 1;
                ans[x][y] = {p.first, p.second};
            }
        }
    }
}

void solve(){

    cin >> n;
    for(int i = 0; i < n; i ++){
        for(int j = 0; j < n; j ++){
            cin >> mp[i][j];
        }
    }

    bfs(n - 1, n - 1);

    PII end = {0, 0};

    cout << end.first << ' ' << end.second << endl;
    while(end.first != n - 1 || end.second != n - 1){
        cout << ans[end.first][end.second].first << ' ' << ans[end.first][end.second].second << endl;
        int x = end.first, y = end.second;
        end.first = ans[x][y].first;
        end.second = ans[x][y].second;
    }

}

int main(){
    solve();
    return 0;
}


活动打卡代码 AcWing 3694. A还是B

#include <bits/stdc++.h>
using namespace std;

void solve(){
    int n;
    cin >> n;
    char op;
    int a = 0, b = 0;
    while(n --){
        cin >> op;
        if(op == 'A') a ++;
        else b ++;
    }
    if(a > b) cout << "A" << endl;
    else if(a < b) cout << "B" << endl;
    else cout << "T" << endl;
}

int main(){

    solve();

    return 0;
}


活动打卡代码 AcWing 3661. 重置数列

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 10;

int a[N];

void sovle(){
    int n, k;
    cin >> n >> k;

    set<int> vis;

    for(int i = 0; i < n; i ++){
        cin >> a[i];
        vis.insert(a[i]);
    }

    int cnt = 0x3f3f3f3f;
    for(auto &p : vis){
        int res = 0;
        for(int i = 0; i < n; i ++){
            if(a[i] != p){
                i += k - 1;
                res ++;
            }
        }
        cnt = min(cnt, res);
    }

    cout << cnt << endl;
}

int main(){
    int _;
    cin >> _;

    while(_ --){
        sovle();
    }

    return 0;

}



活动打卡代码 AcWing 3660. 最短时间

#include <bits/stdc++.h>
using namespace std;

void solve(){

    int n, m, r, c;

    cin >> n >> m >> r >> c;

    cout << max(max(n - r, r - 1) + m - c, max(n - r, r - 1) + c - 1) << endl;

}

int main(){

    int _;

    cin >> _;

    while(_ --){
        solve();
    }

    return 0;

}