1 条题解

  • 0
    @ 2025-8-24 22:50:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar luan341502
    AFOed

    搬运于2025-08-24 22:50:29,当前版本为作者最后更新于2023-09-25 12:44:04,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    这题我们考虑随意找出一条路径,计算出题中所述的由上到下的次数和由下到上的次数,如果前者多直接输出,如果后者多倒序输出即可。

    #include <bits/stdc++.h>
    using namespace std;
    int t;
    int n,a[105][105];
    vector<int> ans;
    int main(){
    	cin>>t;
    	while(t--){
    		ans.clear();
    		scanf("%d",&n);
    		for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++){
    				scanf("%d",&a[i][j]);
    			}
    		}
    		for(int i=1;i<=n;i++){
    			if(i&1){
    				for(int j=1;j<=n;j++) ans.push_back(a[i][j]);
    			}else{
    				for(int j=n;j;j--) ans.push_back(a[i][j]);
    			}
    		}
    		int cnt=0,cnt_=0,N=n*n;
    		for(int i=0;i<N-1;i++){
    			if(ans[i]>ans[i+1]) cnt++;
    			else cnt_++;
    		}
    		if(cnt<cnt_) reverse(ans.begin(),ans.end());
    		for(int i=0;i<N;i++){
    			printf("%d ",ans[i]);
    		}
    		puts("");
    	}
        return 0;
    }
    
    • 1

    [ICPC 2021 Macao R] So I'll Max Out My Constructive Algorithm Skills

    信息

    ID
    9232
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者