首页 > 其他分享 >NOIP2023模拟12联测33 A. 构造

NOIP2023模拟12联测33 A. 构造

时间:2023-11-06 21:44:48浏览次数:31  
标签:12 33 sum ans 40 ++ cdots 联测 printf

NOIP2023模拟12联测33 A. 构造

题目大意

231101_RJFxJQNDi2.png (654×908) (hszxoj.com)

231101_XYifDj7d2E.png (654×214) (hszxoj.com)

构造题

思路

想一种构造方法,使得 \(y\) 能够凑成尽可能多的答案

第一行 \(xyry \cdots r\)

第二行 \(ryxy \cdots x\)

第三行 \(xyry\cdots r\)

把最后一列空出来。

此时有 \(2202\) 个答案

如果 \(n < 2202\)

贪心从后往前把 \(y\) 变成 \(x\)

然后按照 \(ryxyr \cdots\) 填最后一列,直到现在的答案为 \(n\) 为止,剩下的用 \(x\) 代替。

code

#include <bits/stdc++.h>
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
using namespace std;
const int N = 45;
int n , ans[N][N] , sum , x , y;
int main () {
    freopen ("ryx.in" , "r" , stdin);
    freopen ("ryx.out" , "w" , stdout);
    scanf ("%d" , &n);
    fu (i , 1 , 40) {
        fu (j , 1 , 40) {
            if (j % 2 == 0) ans[i][j] = 2;
            else if (i % 2 == ((j - 1) / 2) % 2) ans[i][j] = 3;
            else ans[i][j] = 1;
        }
        ans[i][40] = 1;
    }
    x = 40 , y = 39 , sum = 2204;
    while (sum > n) {
        ans[x][y] = 2;
        if (x <= 2) sum -= (y != 1);
        else if (y == 39) sum -= 2;
        else if (y == 1) sum --;
        else sum -= 3;
        if (y == 1) x -- , y = 39;
        else y -= 2;
    }
    if (n > sum) {
        ans[1][40] = 1;
        ans[2][40] = 2;
        ans[3][40] = 3;
        x = 3;
        sum ++;
        while (sum < n) {
            x ++;
            ans[x][40] = 2;
            x ++;
            if (((x - 1) / 2) % 2 == 0) ans[x][40] = 1;
            else ans[x][40] = 3;
            sum ++; 
        }
    }
    printf ("40 40\n");
    fu (i , 1 , 40) {
        fu (j , 1 , 40) {
            if (ans[i][j] == 1) printf ("r");
            else if (ans[i][j] == 2) printf ("y");
            else printf ("x");
        }
        printf ("\n");
    }
    return 0;
}

标签:12,33,sum,ans,40,++,cdots,联测,printf
From: https://www.cnblogs.com/2020fengziyang/p/17813825.html

相关文章

  • 【多校联考NOIP#12】比赛复盘
    A.星穹铁道读完题面就想到了\(O(n^2)\)的暴力。很好想,但是只有40分。观察到\(z_i=\pm1\),然而即便如此,我也没有得到有用的性质。(正解是用到这个性质的)然后我就暴力写了。正解的性质“最终在一个区间L,R内,初始也一定在一个连续段内”赛事没有想到。同时题解用了逆向思维,对......
  • Linux p12 查找指令
    搜索查找指令find指令find指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。基本语法find[搜索范围(指定目录)][选项]选项说明选项功能-name<查询方式>按照指定的文件名查找模式查找文件-user<用户名>查找属于指定用户名......
  • 文心一言 VS 讯飞星火 VS chatgpt (129)-- 算法导论11.1 4题
    四、用go语言,我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典。开始时该数组中可能包含一些无用信息,但要对整个数组进行初始化是不太实际的,因为该数组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储对象占用O(1)空间;SEARCH、INSERT和DELETE操......
  • NOIP 模拟12(NOIP A层联测25)
    100+100+30+100,T4自己写了Check最后一分钟发现Check锅了,赌了一发替换了部分分,赢!A.构造默认\(n\geq3,n\in\{2x+1,x\inN\},m\geq4\)。考虑构造rrrrr---yyyyy---xxxxx---yyyyy---rrrrr---yyyyy---xxxxx-----------这样有\(\dfrac{n-1}{2}\times(3m-4)\)个......
  • 文心一言 VS 讯飞星火 VS chatgpt (129)-- 算法导论11.1 4题
    四、用go语言,我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典。开始时该数组中可能包含一些无用信息,但要对整个数组进行初始化是不太实际的,因为该数组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储对象占用O(1)空间;SEARCH、INSERT和DELETE操......
  • SFTP无法连接 Connection closed by server with exitcode 127
    命令:Pass:************状态:Connectedto66.77.88.99错误:Connectionclosedbyserverwithexitcode127错误:无法连接到服务器 解决方法:vi/etc/ssh/sshd_config    其中:“Subsystemsftp/usr/libexec/sftp-server” 将其修改为正确的sftp-server路径Subsystem......
  • Oracle imp 导入数据出现 ORA-12560
    错误如下:D:\software\xfwebdb2015-05-11\autobackup>impImport:Release10.2.0.1.0-Productionon星期三5月1319:36:102015Copyright(c)1982,2005,Oracle. Allrightsreserved.用户名:zfzb口令:IMP-00058:遇到ORACLE错误12560ORA-12560:TNS:协议适配器错误IM......
  • Windows 下 ORA-12560: TNS: 协议适配器错误的问题
    Windows下ORA-12560:TNS:协议适配器错误的问题原因有三个: 1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。 2.databaseinstance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,......
  • 日记 2022.12.17:22年实验中学秋季训练 6
    A.gym103428m问有多少个长度为\(n\)的01串,其中有\(m\)个是1,且最长连续的1的长度恰好是\(k\)。十万。Trick1容斥系数怎么算?Trick2限制了这个串的长度和\(1\)的个数,这意味着什么?插板的东西是什么?solution错解明显不顾最长连续段限制答案是$g(n,m)=\bin......
  • Nodejs的安装以及配置(node-v12.16.1-x64.msi)
    Nodejs的安装以及配置1、安装node-v12.16.1-x64.msi点击安装,注意以下步骤本文设置nodejs的安装的路径:D:\soft\nodejs  继续点击next,选中AddtoPATH,旁边的英文告诉我们会把环境变量给我们配置好 当然也可以只选择Node.jsruntime,根据自己需要选择安装 下面如......