ZOJ
来源:互联网 发布:nginx 多域名 多站点 编辑:程序博客网 时间:2024/04/30 23:08
B - Problem Arrangement
ZOJ - 3777#include<iostream>#include<cstdio>#include<math.h>#include<cstring>#include<climits>#include<string>#include<queue>#include<stack>#include<set>#include<map>#include<list>#include<vector>#include<sstream>#include<algorithm>using namespace std;#define rep(i,j,k)for(i=j;i<k;i++)#define per(i,j,k)for(i=j;i>k;i--)#define ms(x,y)memset(x,y,sizeof(x))#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define ll long longconst int INF=0x7ffffff;int dp[1<<12][500];int i,j,k,n,m;int mp[12][12];int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int fact(int x){ int r=1; for(int i=1;i<=x;i++) r*=i; return r;}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&mp[i][j]); ms(dp,0); dp[0][0]=1; int t=(1<<n)-1; for(i=0;i<=t;i++) for(j=0;j<=m;j++){ if(dp[i][j]){ int cnt=0; for(k=0;k<n;k++)if(i&(1<<k))cnt++; for(k=0;k<n;k++) if(!(i&(1<<k))) dp[i|(1<<k)][min(m,j+mp[k][cnt])]+=dp[i][j]; } } int a=dp[t][m]; if(!a){ printf("No solution\n"); continue; } int b=fact(n); int c=gcd(a,b); printf("%d/%d\n",b/c,a/c); } return 0;}
0 0
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- string类的库函数介绍总结
- mysql导入数据load data infile用法
- getAttribute()与getParameter的区别
- CSDN日报20170320——《Java 程序员的面试经历和题库》
- Java6.0新特性之StAX--全面解析Java XML分析技术
- ZOJ
- 2017模拟赛-本科组
- set insert () 4 其自动排序功能
- mysql启不动,忘密码解决办法
- CSS简介以及使用
- Java多线程常用方法
- jdk8新特性
- 代码注释:机器学习实战第3章 决策树
- POJ 2499 Binary Tree G++