2026年8月7日题解
2026-08-07 20:57:33
发布于:广东
https://www.acgo.cn/problemset/info/112000?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
#define ll long long
int main(){
ll a,b;
cin>>a>>b;
cout<<__gcd(a,b)<<endl;
//lcm=a*b/__gcd(a,b);
}
https://www.acgo.cn/problemset/info/111999?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
#define ll long long
int dirx[]={1,1,-1,-1,2,2,-2,-2};
int diry[]={2,-2,2,-2,1,-1,1,-1};
int ans[N][N];
int vis[N][N];
struct Node{
int x,y;
};
int main(){
int n,m,x,y;
cin>>n>>m>>x>>y;
queue<Node>que;
que.push({x,y});
int len=1;//最终答案
ans[x][y]=1;//从1开始
while(que.size()){
int size=que.size();//当前层的个数
len++;//层数++
while(size--){
int x=que.front().x;
int y=que.front().y;
que.pop();
for(int i=0;i<8;i++){
int nx=dirx[i]+x;
int ny=diry[i]+y;
if(1<=nx&&nx<=n&&1<=ny&&ny<=m);else continue;
if(ans[nx][ny])continue;
ans[nx][ny]=len;
que.push({nx,ny});
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)cout<<ans[i][j]-1<<' ';cout<<endl;
}
}
https://www.acgo.cn/problemset/info/112002?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
#define ll long long
vector<int>graph[N];
int vis[N];//
int ans=0;//统计个数
void dfs(int inx){
if(vis[inx])return ;
ans++;
vis[inx]=1;
for(auto nxt:graph[inx]){
dfs(nxt);;
}
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;cin>>x>>y;
graph[x].push_back(y);
graph[y].push_back(x);
}
int x,y;
cin>>x>>y;
dfs(x);
cout<<vis[y]*ans<<endl;
}
https://www.acgo.cn/problemset/info/112572?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=100000+10;
#define ll long long
vector<int>graph[N];
int cnt[N];//统计每个节点的入度
int ans=0;//统计个数
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;cin>>x>>y;
graph[x].push_back(y);
cnt[y]++;
}
queue<int>que;
for(int i=1;i<=n;i++){
if(cnt[i]==0)que.push(i);
}
int res=0;//统计个数
while(que.size()){
int inx=que.front();que.pop();
res++;
for(auto nxt:graph[inx]){
cnt[nxt]--;
if(cnt[nxt]==0)que.push(nxt);
}
}
if(res==n)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
https://www.acgo.cn/problemset/info/112001?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
#define ll long long
int a[N];
int is_prime(ll x){
if(x<2)return false;
for(int i=2;i*i<=x;i++){
if(x%i==0)return false;
}
return true;
}
int n,ans=0;
void dfs(int inx,ll sum){
if(inx>n){
ans+=is_prime(sum);
return ;
}
dfs(inx+1,sum);
dfs(inx+1,sum+a[inx]);
}
int main(){
cin>>n;;
for(int i=1;i<=n;i++)cin>>a[i];
dfs(1,0);
cout<<ans<<endl;
}
https://www.acgo.cn/problemset/info/112544?teamCode=2042058713337094144
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
#define ll long long
int a[N];
int is_prime(ll x){
if(x<2)return false;
for(int i=2;i*i<=x;i++){
if(x%i==0)return false;
}
return true;
}
int n,ans=0;
void dfs(int inx,ll sum){
if(inx>1000){
ans+=is_prime(sum);
return ;
}
for(int i=0;i<=a[inx];i++){
dfs(inx+1,sum+inx*i);
}
}
int main(){
cin>>n;;
for(int i=1;i<=n;i++){
int x;cin>>x;
a[x]++;
};
dfs(1,0);
cout<<ans<<endl;
}
全部评论 1




1周前 来自 广东
0




















有帮助,赞一个