Discuz! Board

 找回密码
 立即注册
查看: 53|回复: 4

每日一题5.27

[复制链接]

5

主题

13

回帖

71

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
71

黄金骑士钻石大师

发表于 2025-5-25 23:00:29 | 显示全部楼层 |阅读模式

5

主题

13

回帖

71

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
71

黄金骑士钻石大师

 楼主| 发表于 2025-5-27 17:01:55 | 显示全部楼层
[C++] 纯文本查看 复制代码
铜牌题B
#include<bits/stdc++.h>
#define int long long
using namespace std;

int gcd(int x, int y) {
    if(y) return gcd(y, x % y);
    return x;
}

void solve() {
    int n, m;
    cin >> n >> m;
    if(gcd(n, m) != 1) {
        cout<<"No\n";
        return;
    } else cout<<"Yes\n";
    int M = n * m;
    for(int i=1; i<=n; i++) {
        cout<<(1 + i * m) % M <<" ";
    } 
    cout<<"\n";
    for(int i=1; i<=m; i++) {
        cout<<(1 + i * n) % M <<" ";
    }
    cout<<"\n";
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++) {
        solve();
    }
    return 0;
}
回复

使用道具 举报

6

主题

15

回帖

80

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
80

黄金骑士

发表于 2025-5-27 20:14:18 | 显示全部楼层

B题:
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
//1 2
//1 3 5 7
void solve(){
    int n,m;
    cin>>n>>m;
   
    if(gcd(n,m)!=1){
        cout<<"No\n";
        return;
    }
     
        vector<int>a(n+1),b(m+1);
        for(int i=1;i<=n;i++){
            a[i]=(m*(i)+1)%(n*m);
        }
        for(int i=1;i<=m;i++){
            b[i]=(n*(i)+1)%(n*m);
        }
    cout<<"Yes\n";
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" \n"[i==n];
    }
    for(int i=1;i<=m;i++){
        cout<<b[i]<<" \n"[i==m];
    }
    
 
}


signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t=1;
    cin>>t;

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


    return 0;
}
回复

使用道具 举报

8

主题

13

回帖

129

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
129

黄金骑士钻石大师

发表于 2025-5-27 22:46:08 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int>PII;

void solve(){
	int a,b;
	cin>>a>>b;
	int temp=a*b;
	if(gcd(a,b)!=1){
		cout<<"No"<<endl;
		return ;
	}
	cout<<"Yes"<<endl;
	for(int i=1;i<=a;i++){
		cout<<(1+i*b)%temp<<" \n"[i==a];
	}
	for(int i=1;i<=b;i++){
		cout<<(1+i*a)%temp<<" \n"[i==b];
	}
}

signed main(){
	int t=1;ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>t;
	while(t--)solve();
	return 0;
}
回复

使用道具 举报

6

主题

15

回帖

80

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
80

黄金骑士

发表于 2025-5-29 13:26:22 | 显示全部楼层
M:
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
#define int long long
void solve()
{
    int n, m, q;
    cin >> n >> m >> q;
 
    vector<vector<array<int, 2>>> adj(n + 1);
 
    auto mod = [&](int x)
    {
        return (x % n + n) % n;
    };
    for (int i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        int A = mod(a);
        int B = mod(b);
        adj[A].push_back({mod(a + b), b});
    }
    vector<int> dfn(n + 1), low(n + 1), instk(n + 1), stk(n + 1), bel(n + 1), s(n + 1);
    int ts = 0, top = 0;
    int scccnt = 0;
    function<void(int)> tarjan = [&](int u) -> void
    {
        dfn[u] = low[u] = ++ts;
        instk[u] = 1;
        stk[++top] = u;
        for (auto [v, w] : adj[u])
        {
            if (!dfn[v])
            {
                tarjan(v);
                low[u] = min(low[u], low[v]);
            }
            else if (instk[v])
            {
                low[u] = min(low[u], dfn[v]);
            }
        }
        
        if (dfn[u] == low[u])
        {
            scccnt++;
            int x;
            do
            {
                
                x = stk[top--];
                bel[x] = scccnt;
                s[scccnt] = x;
                instk[x] = 0;
            } while (x != u);
        }
    };
    
    for (int i = 0; i < n; i++)
    {
        if (!dfn[i])
        tarjan(i);
    }
    vector<vector<int>> scctox(scccnt + 1);
    vector<int> h(n), f(scccnt + 1), out(scccnt + 1);
    vector<int> vis(n + 1);
    int flag = 0;
    auto dfs = [&](auto &&self, int u) -> void
    {
        if(flag)
        return;
        vis[u] = 1;
        for (auto [v, w] : adj[u])
        {
            if (bel[v] != bel[u])
            continue;
            
            if (!vis[v])
            {
                h[v] = h[u] + w;
                self(self, v);
                
            }
            else
            {
                
                if (h[u] + w != h[v])
                {
                    flag = 1;
                    return;
                }
            }
        }
      
    };
    for (int i = 0; i < n;i++){
        scctox[bel[i]].push_back(i);
    }
        for (int i = 1; i <= scccnt; i++)
        {
            for(auto j:scctox[i])
                vis[j] = 0;
            flag = 0;
            vis[s[i]] = 1;
            h[s[i]] = 0;
            dfs(dfs, s[i]);
            f[i] = flag;
        }
    vector<vector<int>> nadj(scccnt + 1);
    for (int i = 0; i < n; i++)
    {
        for (auto [v, w] : adj[i])
        {
            if (bel[i] != bel[v])
            {
                nadj[bel[v]].push_back(bel[i]);
                out[bel[i]]++;
            }
        }
    }
 
    queue<int> Q;
    for (int i = 1; i <= scccnt; i++)
    {
        if (out[i] == 0)
        {
            Q.push(i);
        }
    }
    while (!Q.empty())
    {
        auto u = Q.front();
        Q.pop();
 
        for (auto v : nadj[u])
        {
            f[v] |= f[u];
            if (--out[v] == 0)
            {
                Q.push(v);
            }
        }
    }
 
    while (q--)
    {
        int x;
        cin >> x;
        x = mod(x);
        if (f[bel[x]] == 1)
        {
            cout << "Yes\n";
        }
        else
            cout << "No\n";
    }
}
 
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX ( 鄂ICP备2024088332号-1 )

GMT+8, 2025-6-7 11:41 , Processed in 0.062683 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表