深圳 XP03A 笔记 day01
2026-07-22 20:54:36
发布于:广东

全排列

充满希望的拼接质数


食堂管理员
连通块数量

质数保护罩

训练计划

社团分组
// n个点 m条边
// 求连通块的最大数量
#include<bits/stdc++.h>
using namespace std;
vector<int> g[200010];
bool vis[200010];
int sum = 0;
int ans = 0;//求最大值
int n,m;
void dfs(int u){
vis[u]=true;
sum++;
for(int i=0;i<g[u].size();i++){
int ne = g[u][i];
if(!vis[ne]){
dfs(ne);
}
}
}
int main(){
cin>>n>>m;
while(m--){
int a,b;
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
for(int i=1;i<=n;i++){
if(!vis[i]){
sum = 0;
dfs(i);
ans = max(ans,sum);
}
}
cout<<ans;
return 0;
}
星际质数
#include<bits/stdc++.h>
using namespace std;
int n;
int d[4] = {1, 3, 7, 9};
bool is_prime(int x){
if(x < 2) return false;
for(int i = 2; i * i <= x; i++){
if(x % i == 0) return false;
}
return true;
}
void dfs(int x, int len){
if(len == n){
cout << x << '\n';
return;
}
for(int i = 0; i < 4; i++){
int y = x * 10 + d[i];
if(is_prime(y)){
dfs(y, len + 1);
}
}
}
int main(){
cin >> n;
dfs(2, 1);
dfs(3, 1);
dfs(5, 1);
dfs(7, 1);
return 0;
}
全部评论 1
1
2026-07-22 来自 广东
0























有帮助,赞一个