题解 CF748A 【Santa Claus and a Place in a Class】

题目解析:

这题其实就是一个二维矩阵,给你一个编号,让你输出这个编号所在的位置

使用算法:

这题的范围:n,m,k.( 1<=n,m<=10000 , 1<=k<=2 * n* m )

所以这道题不能用二维数组直接来模拟,我自己在做的时候又想到了STL中的vector,

但又觉的太麻烦,所以就想了一个简便一点的方法:不模拟出一个二维矩阵,直接查找编号

其核心就是三重循环

代码实现:

for(int i=1;i<=n;i++)
{
    for(int j=1;j<=m;j++)
    {
        for(int t=1;t<=2;t++)
        {
            cnt++;
            if(cnt==k)
            {
                quick_out(i);
                putchar(' ');
                quick_out(j);
                putchar(' ');
                if(t==1) putchar('L');
                else putchar('R');
                putchar('\n');
                return 0;
            }
        }
    }
}

接着就是整段代码了

(我知道泥萌就要看这个)

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,m,k;
    cin>>n>>m>>k;
    int cnt=0;  //一个计数器
    for(int i=1;i<=n;i++)      //第一重循环,模拟行
    {
        for(int j=1;j<=m;j++)   //第二重,模拟列
        {
            for(int t=1;t<=2;t++)   //第三重,模拟出每列的左右两边
            {
                cnt++;
                if(cnt==k)  //如果计数器的编号等于要找的编号,输出
                {
                    cout<<i<<" "<<j<<" ";   //输出横坐标和纵坐标
                    if(t==1) cout<<'L';  //输出是左还是右
                    else cout<<'R';
                    putchar('\n');  //换行
                    return 0;   //结束,return 0
                }
            }
        }
    }
    return 0;
}

 上一篇
题解 CF681B 【Economy Game】 题解 CF681B 【Economy Game】
题目解析:这题给你一个n (1<=n<=10^9)让你判断是否有a*1234567+b*123456+c*1234=n的方法(a、b、c皆为正整数) 解题方法:此题其实很简单,我自己做的时候考虑了很久用什么方法做,但算了一下
2020-04-10
本篇 
题解 CF748A 【Santa Claus and a Place in a Class】 题解 CF748A 【Santa Claus and a Place in a Class】
题目解析:这题其实就是一个二维矩阵,给你一个编号,让你输出这个编号所在的位置 使用算法:这题的范围:n,m,k.( 1<=n,m<=10000 , 1<=k<=2 * n* m ) 所以这道题不能用二维数组直接来
2020-04-10
  目录