P14358 [CSP-J 2025] 座位

P14358 CSP-J 2025 座位

来源:洛谷题库

思路

题目比较简单,数据量不大,要求求出出排序后的a1所在的列和行

  • 列:排序后的数组下标直接除n ,结果向上取整即可
  • 行:根据求出的列数分奇偶,用下标%行数n即可知道a1在这一列排第几,奇数从第一行开始,偶尔列从第n行开始排
  • 注意:特判一下下标%n==0的情况,奇数项是第n行,偶数项在第一行

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[10001];
int main(){
	int n,m;
	int c,r;//分别是列 、行
	cin>>n>>m;
	for(int i=1;i<=n*m;i++){
		cin>>a[i];
	}
	int k=a[1],t=0; //t排序后所在位置 
	sort(a+1,a+n*m+1,greater<int>());//降序排列 
	for(int i=1;i<=n*m;i++){
		if(a[i]==k) t=i;
	}
	//计算列数
	if(t%n==0) c = t/n; //是行的整数倍 直接输出 
	else c = t/n+1; //座位在下一行 
	//计算行数 
	cout<<c<<" ";
	if(t%n==0){ //位置刚好在首尾的情况 
		if(c%2==1) cout<<n; //奇数列在最后一排 
		else cout<<1;
	}else{
		if(c%2==1) cout<<t%n;
		else cout<<n-t%n+1;
	}
		return 0;
}
相关推荐
forest_095 小时前
多 Agent 协作第二课:交叉验证≠独立验证
人工智能·python·算法·机器学习·prompt·agi
纪念 2296 小时前
C++ 算法基础 (差分)
开发语言·c++·算法
jyOverQ9 小时前
从零学 JVM(六):垃圾回收算法详解——标记清除、标记复制与标记整理
jvm·算法
严肃小白兔11 小时前
第 06/24 期:神经网络的反向传播算法:从链式法则到梯度计算
人工智能·神经网络·算法
落羽的落羽11 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
【心态好不摆烂】12 小时前
数据结构基础精讲3
数据结构·算法
漂流瓶jz13 小时前
UVA-1613 K度图的着色 题解答案代码 算法竞赛入门经典第二版
算法·深度优先·图论·贪心·aoapc·算法竞赛入门经典·uva
Pniubi14 小时前
动态规划入门 ( - 力扣509斐波那契数)
算法·动态规划
吴长建先生重名了15 小时前
GitHub Actions部署报表系统踩坑记:幂等性与限
算法