本文共 780 字,大约阅读时间需要 2 分钟。
在2行5列的格子中填入1到10的数字。
要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的。 如下图所示的2种,就是合格的填法。 请你计算一共有多少种可能的方案。#include#include using namespace std;typedef long long ll;int a[10]={ 1,2,3,4,5,6,7,8,9,10};int main(){ // int ans=0;// // do{ // int site[2][5];// for(int i=0;i<5;i++) site[0][i]=a[i]; //第一行// for(int j=5;j<10;j++) site[1][j-5]=a[j]; //第二行// // int flag=0;// for(int i=1;i<5;i++) // { // if(site[0][i]<=site[0][i-1] || site[1][i]<=site[1][i-1]) //两行:右边比左边大,否则break// { // flag=1;// break;// }// }// // if(flag) continue;// // for(int i=0;i<5;i++)// { // if(site[1][i]<=site[0][i]) //下面比上面大,否则break// { // flag=1;// break;// }// }// // if(!flag) ans++; // 一种情况// }while(next_permutation(a,a+10)); //全排列// // cout<
转载地址:http://wlao.baihongyu.com/