• 背单词


    背单词


    (word.c/cpp/pas)


    【题目描述】


    fqk 退役后开始补习文化课啦, 于是他打开了英语必修一开始背单
    词。 看着满篇的单词非常头疼, 而每次按照相同的顺序背效果并不好,
    于是 fqk 想了一种背单词的好方法!他把单词抄写到一个 n 行 m 列的
    表格里,然后每天背一行或者背一列。他的复习计划一共有 k 天,在
    k 天后, fqk 想知道,这个表格中的每个单词,最后一次背是在哪一
    天呢?


    【输入格式】


    第一行三个整数 k m n , , 。
    接下来 k 行,每行的格式可能如下:
    1. r ,表示当前天 fqk 背了第 r 行的单词。
    . 2 c ,表示当前天 fqk 背了第 c 列的单词。


    【输出格式】


    输出包含 n 行, 每行 m 个整数, 表示每个格子中的单词最后一次背
    是在哪天,如果这个单词没有背过,则输出 0 。


    【输入样例】


    3 3 3
    1 2
    2 3
    1 3


    【输出样例】


    0 0 2
    1 1 2
    3 3 3


    【数据范围】


    对于 % 30 的数据, 1000 , ,  k m n 。
    对于 % 100 的数据, 100000 , 100000 , 5000 ,     k m n m n 。


    【时空限制】


    对于每个测试点,时间限制为 s 1 ,空间限制为 MB 512 。

    思路:

      大模拟不解释

    来,上代码:

    #include<cstdio>
    
    using namespace std;
    
    int ha[5001],li[5001],n,m,k,flag,cur;
    
    char ch;
    
    void qread(int &x)
    {
        x=0;ch=getchar();
        while(ch<'0'||ch>'9') ch=getchar();
        while(ch>='0'&&ch<='9'){x=x*10+(int)(ch-'0');ch=getchar();}
    }
    
    int max(int a,int b){return a>b?a:b;}
    
    int main()
    {
        qread(n),qread(m),qread(k);
        for(int i=1;i<=k;i++)
        {
            qread(flag),qread(cur);
            if(flag==1) ha[cur]=i;
            else li[cur]=i;
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                printf("%d ",max(ha[i],li[j]));
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    删除 node_modules文件夹cmd指令
    vue 限制输入字符长度
    vertical-align和text-align属性实现垂直水平居中
    二分查找法
    MySQL实现分页查询
    数据库连接
    AOP编程的常用实现方式
    链表中环的入口
    AQS同步组件及ReentrantLock和synchronized的区别
    快速排序的递归和非递归
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6048115.html
Copyright © 2020-2023  润新知