首页 > 其他分享 >【真题研究】CSP-S2019

【真题研究】CSP-S2019

时间:2024-10-24 09:46:16浏览次数:1  
标签:真题 int long tie S2019 CSP

[CSP-S2019] 格雷码

很简单的规律题。

考虑决策每一位的 \(0/1\),从高位往低位决策。将 \(k\) 可以看作当前的排名。

第 \(i\) 位若 \(2^{i-1}<k\),说明当前位为 \(0\)。否则当前位为 \(1\),并将排名更新为 \(k=2^i-k-1\) 然后继续决策即可。

时间复杂度 \(O(n)\),递归或循环实现都可。

#include<bits/stdc++.h>
#define int long long
#define For(i,l,r) for(int i=l;i<=r;++i)
#define FOR(i,r,l) for(int i=r;i>=l;--i)

using namespace std;

const int N = 65;

int n, k, ans[N];

signed main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr), cout.tie(nullptr);
  cin >> n >> k;
  FOR(i,n,1) {
    int pw = (1ll<<(i-1));
    if(k < pw) {
      ans[i] = 0;
    } else {
      ans[i] = 1;
      k = 2 * pw - k - 1;
    }
  }
  FOR(i,n,1) {
    cout << ans[i];
  }
  return 0;
}

标签:真题,int,long,tie,S2019,CSP
From: https://www.cnblogs.com/Daniel-yao/p/18498884

相关文章

  • CSP-S 2024 第二轮认证——游记
    CSP游记Day-3学校办运动会了,机房有勇夫参赛,第一轮OUT。FRZ_29大佬直接开卷,蹲守机房,泡面为伴,结果被无可奈何花落去搞得一天无可奈何。本蒟蒻play了一个上午,下午回到机房,发现FRZ_29大佬已经卷了一个上午,直接当场%%%%%。晚饭也是吃机房特产,精品美食泡面(bushi)。晚上尝试驯服Li......
  • P7074 [CSP-J2020] 方格取数 题解
    动态规划dp方格取数类似于数字三角形,均可以使用动态规划直接秒杀.但此题有$3$个方向:上、右、下.所以可以定义一个三维数组dp数组.假设$f_{i,j,1}$是从右、上方到达$(i,j)$的和的最大值.又有$f_{i,j,0}$是从右、下方到达$(i,j)$的和的最大值.我们可以先确定......
  • P7912 [CSP-J 2021] 小熊的果篮 题解
    是模拟吗?其实是的,虽然$1\len\le2\times10^5$,但是队列是个好东西.我们定义一个结构体,来存放每一个块的信息,包括类型、起点、终点,将它们放入队列当中,再使用基于广搜的思想,先处理,再合并,所以需要用到$2$个队列.注意点数据中可能会有块的类型全是$1$,或者全是$0$的情况......
  • P7071 [CSP-J2020] 优秀的拆分 题解
    二进制"优秀的拆分"如果存在,则代表$n$的二进制最低位不是$1$.$\because2^0=1$$\therefore$当$n$的二进制最低位为$1$时,不存在优秀的拆分.即$n$不是奇数.上述条件判断完后,就可以从$2$的$30$次方开始模拟(int的上限是$2^{31}-1$).代码#include<iostream>......
  • P7072 [CSP-J2020] 直播获奖 题解
    暴力使用$\Theta(n^2)$的时间复杂度来解决这题大约能拿到$60pts$.即枚举$p$,再枚举每个选手的分数.正解桶是个好东西.我们开一个桶,记录当前分数有多少人.然后计算获奖人数,分数从大到小进行枚举,直到当前人数$\ge$获奖人数.代码#include<iostream>#include<cstdio>#i......
  • [CSP-J2020] 表达式 题解
    短路这道题目中所含的运算符只有3个:与、或、非.在与运算和或运算中有2个性质.进行与运算时,若其中有一个值为0,则这个运算的结果就为0,即无需判断另1个数是否是0或1.进行或运算时,若其中有一个值为1,则这个运算的结果就为1,也无需判断另一个数是否是0或1.表达式树根据短路的性......
  • CSP-J 2024 游记
    CSP-J2024游记Day\(-3\)忐忑不安地期待。做了一套模拟。ProblemScoreDifficultiesA\(100\)入门B\(50\)(贪心策略错了)普及-C\(50\)(双重循环\(n<=10^5\))普及D\(20\)(dp+前缀和,我写的DFS)普及+B题交完废了,幸好后面\(2\)题还行,总分......
  • CSP模拟赛 #43
    A一棵树,每次加入一条路径,或者查询一条给定路径包含的路径个数。\(n,m,q\le10^5\)矩形加法,单调查询,三维偏序,cdq分治。B一棵树,有\(n+1\)层,第\(i\)层有\(i\)个点。对于第\(i(1\lei\len)\)层,点的编号分别为\(\frac{i(i-1)}2+1\sim\frac{i(i+1)}2\),该层的第......
  • 真题练习25-Excel电子表格-全国计算机等级考试一级计算机基础及MS Office应用考试【汪
    第25组请根据题目要求,完成下列操作:1.在考生文件夹下打开EXCEL.XLSX文件:(1)将sheet1工作表的A1:G1单元格合并为一个单元格,内容水平居中;计算“月平均值”行的内容(数值型,保留小数点后1位。利用AVERAGE函数。);计算“最高值”行的内容(三年中各月的最高值,利用MAX函数)。(2)选取“月份”......
  • 信息学奥赛复赛复习20-CSP-S2019-01格雷码-数据类型范围、unsigned 关键字、无符号范
    PDF文档回复:202410231P5657[CSP-S2019]格雷码[题目描述]通常,人们习惯将所有n位二进制串按照字典序排列,例如所有2位二进制串按字典序从小到大排列为:00,01,10,11。格雷码(GrayCode)是一种特殊的nn位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地......