CF1506A Strange Table 题解

技术CF1506A Strange Table 题解 CF1506A Strange Table 题解CF1506A Strange Table 题解Content
给定一个 \(n\times m\)

CF1506A怪表问题解释

CF1506A怪表问题解释

Content

给出一个\(n次m\)的矩阵。首先,将\ (1,1) \)所在位置上方的数字为\(1\),然后从上到下依次在该列的所有位置上填写\(2,3,\点,n \),再从上到下依次在右侧的所有列上填写\ (n 1,n 2,\点,2n)。

现在换一种填写数字的方式。首先\ (1,1) \)所在位置上方的数字仍然是\(1\),然后从左到右用\(2,3,\点,m\)填充该行中的所有位置,然后从左到右用\(m ^ 1,m ^ 2,\点,2m)填充以下所有行。

给定\(t\)组数据,每组数据给定三个正整数\(n,m,x\),你想知道数字\(x\)用第一种方式填充后会变成什么位置。

数据范围:\(1\leqslant t\leqslant 10^4\),\(1\leqslant n,m\leqslant 10^6\),\(1\leqslant x\leqslant n\times m\)。

Solution

作为Div的一个问题。3、这个问题签到好。

我们不妨先计算一下所需位置所在的行和列。不难想到所需位置在行\(a=\ left \ l ceil \ d frac xn \ right \ r ceil \)和列\(b=(x-1)\bmod n 1\)中。然后,我们发现当前行前面已经填入了\((a-1)\cdot m\)的数字,而这一行应该填入\(b\)的数字,所以答案是\((a-1)\ cdot m b=(\ left \ l ceil \ d frac xn \ right \

请注意本题要开 long long。

Code

int main(){ 0

MT {

ll n=Rll,m=Rll,x=Rll

ll列=(int)ceil(x * 1.0/n),行=(x-1)% n 1;

printf('%lld\n ',(第- 1行)* m列);

}

返回0;

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147911.html

(0)

相关推荐