题目
题目链接
题解全排列。
对运动员进行全排列。
对于每种全排列,我们遍历每一个进行预测的同学,从全排列中获取到预测的运动员所在名次。 对于说真话的同学,顺序遍历他预测的全部运动员,要求他预测的每一个运动员的排名都要比后一个运动员的排名小;只要存在一个不满足要求的,就说明这个全排列是错的;只有全都满足(除这个同学预测的最后一位运动员外)要求,才能说明这个全排列对于这个同学的预测是合适的; 对于说假话的同学,顺序遍历他预测的全部运动员,只要存在当前运动员的排名比后一个运动员的排名大就说明这个全排列对于这个同学的预测是合适的。
考虑到全排列了,但是觉得内部是两重循环会超时就没写,一直在想dfs能不能行。主要还是没想好一种合适的方案实现判断每个同学的预测对每一种全排列是否合适,导致最后舍弃全排列的思路。
代码#include
using namespace std;
int n, m, flag, a[20][20], c[20], t[20], cnt[20], ccnt;
int b[20] = {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int ans[20010][20];
int main()
{
cin>>n>>m;
for(int i = 1;i >cnt[i];
for(int j = 1;j >a[i][j];
cin>>t[i];
}
do { // b[i]:排名为i的运动员的编号
for(int i = 1;i = c[a[i][j+1]]) {flag = 0; break;}
// }
// if(flag) break;
}
if(flag) continue;
++ccnt;
for(int i = 1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?