acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • 01搜索

    因为这题可以选择1或2的书; 所以可以使用01搜索; #include <iostream> using namespace std; int a[25][4],n,ans,b[25]; void dfs(int x){ if(x>n){ int vis[25]={0}; for(int i=1;i<=n;i++){ vis[b[i]]++; if(vis[b[i]]>1){ return; } } } int main(int argc, char *argv[]) { cin>>n; for(int i=1;i<=n;i++){ cin>>a[i][1]>>a[i][2]; } dfs(1); cout<<ans; }

    userId_undefined

    buzhidao

    9阅读
    2回复
    1点赞
  • 题解

    #include<bits/stdc++.h> using namespace std; const int N=20; int a[N][2],b[N+1],x,ans; void f(int i){ if(i>=x){ ans++; return; } for(int j=0;j<=1;j++){ if(!b[a[i][j]]){ b[a[i][j]]=1; f(i+1); b[a[i][j]]=0; } } } int main(){ cin>>x; for(int i=0;i<x;i++) cin>>a[i][0]>>a[i][1]; f(0); cout<<ans; return 0; }

    userId_undefined

    ༺ཌༀluoyongqiༀད༻

    模拟·模拟练习生时空双修者倔强青铜枚举·枚举小能手分支·分支解题者递归·套娃学徒
    2阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页