ACM经典问题-横竖表

本文最后更新于:December 3, 2021 pm

题目链接

原题目链接

问题描述

按列放数
单元格从1开始编号;单元格从左到右按列编号,在每列中从上到下编号;每个单元格的个数为比前一个单元格大1。
如图:

按行放数
单元格从1开始编号;单元格按行从上到下编号,在每行中从左到右编号;每个单元格的个数为比前一个单元格的个数大1。
如图:

第一行为单个整数t(1≤t≤104)。然后是测试用例。
每个测试用例由一行分别包含三个整数n,m, x(1≤n,m≤106,1≤x≤n),其中n、m为表格的行数和列数,x为按列放时的数。求输出x所在的位置按行放的数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//输入
5
1 1 1
2 2 3
3 5 11
100 100 7312
1000000 1000000 1000000000000

//输出
1
2
9
1174
1000000000000

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long n,m,x;
cin>>n>>m>>x;
x-=1;
int row=(x%n);
int col=x/n;
cout<<row*m+col+1<<endl; //可以总结为一个公式
}
}

本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/2145181704.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!