题解 | I 体操队形

数字游戏

https://ac.nowcoder.com/acm/contest/11217/A

因为数据范围只有( 1 < n < 10 ), 利用STL容器next_permutation 得到全排列 ,然后循环判断该排列是否符合题意。

int f[15] ;
int a[15] ;
void solve()
{
    int n ;
    cin >> n ;
    int x ;
    bool flag = 0 ;
    loop( i , 1 , n ) f[i] = i ;
    loop( i , 1 , n ){
        cin >> x ;
        f[i] = x ;
    }
    int res = 0 ;
    loop( i , 1 , n ) a[i] = i ;
    do{
        int cnt = 0 ;
        loop( i , 1 , n ){
            int pos_1 ;
            int pos_2 ;
            loop( j , 1 , n ){
                if( a[j] == i ){
                    pos_1 = j ;
                    break ;
                }
            }
            loop( j , 1 , n ){
                if( a[j] == f[i] ){
                    pos_2 = j ;
                    break ;
                }
            }
            if( pos_1 <= pos_2 ){
                cnt++ ;
            }
        }
        if( cnt == n ) res++ ;
    }while( next_permutation(a+1,a+n+1) );
    cout << res << endl ;
    return ; 
}
全部评论

相关推荐

11-03 13:01
西南大学 Java
mengnankk:28不要投让27的先投,先投带动后投
点赞 评论 收藏
分享
10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务