cf div2 #449 C.Nephren gives a riddle

房产平台系统小程序源码 🏠 一键解锁购房新体验 🔓房产小程序 实现前端 发布二手房 租房 商品 求租 求购等信息;后台发布 新房,二手房租房 商品 写字楼 求租求购等房源信息;功能完善的一块房产小程序。 阅读详情

Nephren gives a riddle

题意:给你一个初始串f[0]:"What are you doing at the end of the world? Are you busy? Will you save us?"(不包括引号)。为了让这句话被更多人知道定义串f[i]为"What are you doing while sending "fi - 1"? Are you busy? Will you send "fi - 1"?"(不包括第一个与最后一个引号),接下来有q次询问,每次询问第n个串的第k个字符是什么,这个字符可能是字母(大小写都有可能)、空格、问号或引号(因为每次引用前一个串的时候都会加上一个引号)。


思路:用一个数组来存放每个串的长度,而长度很好获得,从对串f[i]的定义中可以很容易的得到:从第一个串开始,每个串可以分为五个部分,其中:

第二、第四个串为f[i-1];

第一个串为:What are you doing while sending "(对没错,包括引号,这样才能保证第二、第四个串为f[i-1]);

第三个串为:"? Are you busy? Will you send ";

第五个串为:"?

其中第一、三、五个串的长度可以得到分别是:34、32、2,而第二、第四个串可以调用f[i-1]。

比赛的时候以为询问时k最大1e18就能用long long直接存下,wa的莫名其妙,赛后看了别人代码的 n >= 54 恍然大悟:当n为53时,串的长度已经达到1.2*1e18,所以53之后的串的前1e18个字符和第53个串的差别只有最前面的第一个串,所以对n和k同时处理即可。



AC代码:

/***********************************************
	Author:	StupidTurtle
	Date:		2017.12.05
	Email:		31601359@std.zucc.edu.cn 
***********************************************/ 

#include <iostream>
#include <cstring>
#include <string>

using namespace std ;

typedef long long ll ;

ll q , n , k ;
string Head , Mid , End , F0 ;

ll l[100005] ;

void solve ( ll n , ll k ){
	if ( n != 0 ){
		if ( k <= 34 ){
			cout << Head[k-1] ;
			return ;
		} else if ( k <= 34 + l[n-1] ){
			solve ( n-1 , k-34 ) ;
		} else if ( k <= 66 + l[n-1] ){
			cout << Mid[k-34-l[n-1]-1] ;
			return ;
		} else if ( k <= 66 + l[n-1] * 2 ){
			solve ( n-1 , k-66-l[n-1] );
		} else {
			cout << End[k-66-l[n-1]*2-1] ;
			return ;
		}
	} else {
		cout << F0[k-1] ;
	}
}

int main(void){

	Head = "What are you doing while sending \"" ;
//	cout << Head.length() << endl ;
	Mid = "\"? Are you busy? Will you send \"" ;
//	cout << Mid.length() << endl ;
	End = "\"?" ;
//	cout << End.length() << endl ;
	F0 = "What are you doing at the end of the world? Are you busy? Will you save us?" ;
//	cout << F0.length() << endl ;
	l[0] = 75 ;
	for ( int i = 1 ; i <= 100000 ; i ++ ){
		if ( i >= 54 )  l[i] = l[i-1];
    else    l[i] = l[i-1] * 2 + 68 ;
	}
	cin >> q ;
	for ( int i = 0 ; i < q ; i ++ ){
		cin >> n >> k ;
    while ( n > 53 && k > 34 ){
        n -- ;
        k -= 34 ;
    }
		if ( k > l[n] )		cout << '.' ;
		else	solve ( n , k );
	}
	cout << endl ;
	
	return 0;
}


调用D3D11硬解码和渲染VideoProcessor版本 在https://blog.csdn.net/robothn/article/details/78781321一文中使用shader来显示FFMPEG硬解码后的YUV420P,本文调用D3D11的videoprocessor来进行图像空间变换和尺寸变换,取得了较好的效果。 1.初始化D3D11设备、videodevice等数据结构 FFMPEG调用D3D11硬解码,获取其对应的device,videodevice。。。 FFMPEG使用av_hwdevice_find_type_by_name调用D3d11 阅读详情

相关推荐

第四届“网鼎杯”网络安全大赛 - 青龙组

第四届“网鼎杯”网络安全大赛 - 青龙组

lpppp小公主的博客 1313

Codeforces Round #449 (Div. 2)C. Nephren gives a riddle

链接:http://codeforces.com/contest/897/problem/C 题意:字符串的递归。f0=What are you doing at the end of the world? Are you busy? Will you save us?           s1=What are you doing while sending "     ...

aisongdan0899的博客 173

从零到一:ESP32-P4 PPA加速的配置陷阱与避坑指南

本文详细解析ESP32-P4结合LVGL的PPA硬件加速配置中的常见陷阱,包括内存对齐、缓冲区设置和同步机制等关键问题。提供实用的避坑指南和优化方案,帮助开发者高效启用esp32p4的PPA加速功能,显著提升图形渲染性能。

sky77的博客 396

Codeforces Round #449 (Div. 2). C. Nephren gives a riddle

C. Nephren gives a riddle time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output What are you doing at the end of

1988的博客 528

Unity VR 零基础开发之 Pico4 MR

2、弹出弹窗后,点击Android选项,然后再点击Switch Platform按钮切换成安卓平台。3、切换完成后Android选项后面会显示unity图标。

十画的博客 5104

逆向分析顶象5代各类验证码类型的图片还原方法(附源码)

6.刷新滑块验证码图片,会进入之前的for循环断点,分析此处的代码会发现,该循环循环了处理了n字符串的值,取出n字符中的值并使用charCodeAt生成Unicode 编码,然后又调用了a函数,如果a函数返回true就会把之前生成的Unicode编码+1,a函数参数分别是c数组和Unicode取余32后的值,然后再把Unicode取余32后的值push进c数组,这里的n值为滑块碎片背景图的name。2.搜索"ranges":,会找到ranges赋值的地方,在此处代码断点,并点击跳过断点,结束此次调试。

老衲爱洗头的博客 1196

A. Nephren gives a riddle

What are you doing at the end of the world? Are you busy? Will you save us? Nephren is playing a game with little leprechauns. She gives them an infinite array of strings,f0... ∞. ...

weixin_30294709的博客 228

沙猫群优化算法(SCSO)详解:从沙漠生存智慧到全局优化引擎

本文详细介绍了沙猫群优化算法(SCSO),这是一种新型元启发式优化算法,灵感来源于沙猫在沙漠环境中的卓越狩猎行为。SCSO通过模拟沙猫的低频探测能力和精确攻击策略,将优化问题转化为搜索和捕获"猎物"的过程。算法核心包括探索阶段(全局搜索)和开发阶段(局部精细搜索),通过灵敏度范围模型和自适应控制参数实现两者的平衡。SCSO具有参数简单、收敛性能好等优点,适用于解决复杂全局优化问题。

qq_42212808的博客 202

Codeforces Round #449 (Div. 2) C. Nephren gives a riddle 递归

http://codeforces.com/contest/897/problem/C 又是正视了自己的递归水平,55555。 题意:递归又递归的字符串   下面q个询问,第fn个字符串的第k个字符是啥,如果fn没k这么长就是. 做法:递归长度,n很大,先处理n,如果n k一直很大,可以先判断他是在哪个范围,至少得突破最左边的边缘区,就是34那一块,所以 先不断减小n,k达

twh233的算法blog 313

UNet改进(3):Local Attention增强的UNet网络-医学图像分割

本文提出一种改进的UNet网络,通过引入局部注意力机制增强医学图像分割性能。该方法在传统UNet编码器-解码器结构中,创新性地整合了通道注意力和空间注意力模块,使网络能自适应聚焦关键区域。注意力机制通过特征重标定增强有用信息并抑制噪声,显著提升了小目标分割和边缘检测的精度,同时保持较低计算开销。实验表明,该方法在肿瘤分割等任务中具有更好表现,为医学图像处理提供了新的优化思路。

2501_91516851的博客 2063

DeepSeek揭秘:构建高效反洗钱智能监控系统的全流程与代码实例

在金融领域,反洗钱(AML)是一项至关重要的任务。随着金融交易的复杂性和规模不断增长,传统的手工监控方法已无法满足现代金融系统的需求。因此,开发一个智能监控系统来自动识别和报告可疑交易变得尤为重要。本文将详细介绍如何使用DeepSeek技术构建一个高效的反洗钱智能监控系统,并提供相关的代码实例。

理论都是虚的,代码才是王道。 885

code force 449 div2 C. Nephren gives a riddle

A. Nephren gives a riddle time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output What are you doing at the end of

阿狸的博客 249

基于Stateflow的驱动电机控制系统模式管理与安全策略研究

摘要 本文基于Stateflow状态机建模工具,研究了驱动电机控制系统的模式管理架构与安全策略实现方法。通过分析电机控制系统的工作模式,设计了包含初始化、待机、校准、对齐、运行、故障、复位七种状态的有限状态机模型,并建立了三级故障处理机制和降额保护策略。基于Simulink/Stateflow搭建的仿真模型实现了模式切换逻辑和安全管理功能,验证了系统能够正确响应各类控制事件,故障处理机制可有效保护系统安全。研究成果为电动汽车电机控制系统的工程开发提供了参考。 关键词:Stateflow;驱动电机控制;模式管

AI的内部世界的博客 58

CodeForce 897 C. Nephren gives a riddle

C. Nephren gives a riddle time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output What are you doing at the end of

DlPF_C的博客 672

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

codeforces 897C. Nephren gives a riddle(DFS)

题意:有这样一个函数 f(0) = What are you doing at the end of the world? Are you busy? Will you save us? f(i)  = What are you doing while sending "f(i-1)"? Are you busy? Will you send "f(i-1)"? 有q次询问,每次问f(n

张松超的博客 541

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【CF 897C】Nephren gives a riddle

C. Nephren gives a riddle 比赛的时候以为是找规律,想法也跟这个做法差不多了。。就是想太慢了,还差一点想到用递归,确实不太熟练,希望能通过打cf提高一下思维速度。不知道是不是China round的原因,十点就开始了,搞错时间以为是十一点开始,这场吃了饭之后才来,过了四十多分钟才交题,semi rated都还涨了35… 题意很好理解,就是你猜你猜我猜你猜我猜你猜

Samson的博客 855

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Nephren gives a riddle

递归 码农题 技巧

a free man 903

cf div2 #444 (ABC)(D已补)

ABC三道大水题,自信满满锁了溜出自习室回寝睡觉,第二天起来发现变成两道题了,哭唧唧。 回头翻代码吃了一口大翔,少写了两行被自己gank了。 然后由于出题人的数据放错了导致D题一开始没人过,E和F零星有几个人,然后就洒富富跑去开F和E,数据改了重判之后D题人数飙升但是没什么时间了(一定是出题人的锅)。 好吧怪自己没把题目都看一遍,盲目跟榜会吃翔的,以后记得不管什么比赛都尽可能把所有题目都看一

Stupid_Turtle的博客 1656

codeforces 987E Petr and Permutations(结论+逆序对)

传送门题意:Petr和Alex两个人对一个初始为1,2,3,...,n的长度为n的排列有不同的操作次数(一次操作表现为将其中两个数交换位置,比如1,2,3,4变为1,2,4,3称为一次操作),Petr会对其进行3n次操作,而Alex会对其进行7n+1次操作。现在给你初始排列的长度n和结果排列,问你是他们中的谁进行的操作,如果是Petr输出"Petr",否则输出"Um_nik"。思路:利用到排列的性...

Stupid_Turtle的博客 1097

Codeforces 981D Bookshelves(贪心+dp)

传送门题意:给你n本书以及每本书的权值,现在让你把n本书放到k个书架上(只有连续的几本书可以放到一个书架上),每个书架的权值是书架上每本书的权值加和,总的"beauty"是每个书架权值按位与的结果,要求输出最大的"beauty"。思路:因为要求总"beauty"是所有书架权值的按位与的结果,所以对于总"beauty"的二进制,位数越高的1的价值越大,所以可以从高位开始枚举这一位是否能取1,如果能取...

Stupid_Turtle的博客 906

2019, XII Samara Regional Intercollegiate Programming Contest 解题报告

2019, XII Samara Regional Intercollegiate Programming Contest 传送门 A. Rooms and Passages 题意: 有 n+1n+1n+1 个房间,nnn 把钥匙,有第 iii 把钥匙你可以从房间 i−1i-1i−1 走到房间 iii。每个房间 iii 都有两种类型中的一种: 一、只有拥有钥匙 aia_iai​ 才能从 i−1...

Stupid_Turtle的博客 828

2018, XI Samara Regional Intercollegiate Programming Contest 解题报告

2018, XI Samara Regional Intercollegiate Programming Contest 传送门 A. Restoring Numbers 题意: 给出两个数 aaa 和 bbb 的和 sss 和最大公因数 ggg,要你求出任意一组 aaa 和 bbb 的解。 题解: 我们可以知道 gcd(a,b)=ggcd(a,b)=ggcd(a,b)=g,则我们假设 a=p∗...

Stupid_Turtle的博客 814

codeforces 1080D Olya and magical square (思维+数学)(模拟)

传送门:codeforces 1080D 题意:给你一个 n 和 k ,表示你现在有一个边长为 2^n 的正方形,你需要对其进行恰好 k 次操作,使得:① 左下角和右上角的正方形边长一样,假设为 a;② 存在一条路径,这条路径连通左下角和右上角的正方形,并且这条路径上的所有正方形边长也都为 a。其中,操作指的是:找到目前图形中一个边长不为 1 的正方形,假设边长为 b,把它变成四个边长为 b/2...

Stupid_Turtle的博客 769

codeforces 1017D The Wu(状压+预处理)

传送门:codeforces 1017D 题意:给你n m q,表示在这一组数据中所有的01串长度均为n,然后给你一个含有m个元素的multiset,之后有q次询问。每次询问会给你一个01串t和一个给定常数k,让你输出串t和multiset里面多少个元素的“Wu”值不超过k。对于“Wu”值的定义:如果两个01串s和t在位置i上满足s[i]==t[i],那么加上w[i],处理完s和t的所有n位之后...

Stupid_Turtle的博客 739

Codeforces 985E Pencils and Boxes(尺取法/two pointers)

传送门题意:给定n,k,d,表示给你n支铅笔,每支有一个权值v。现在让你把n支笔放入一些盒子中(盒子数量可以无穷大),每个盒子中至少有k支笔,而且每个盒子中的笔的max(v)-min(v)不超过d。问你能否找到一个合法的放法,可以输出"YES",否则输出"NO"。思路:因为对权值差有要求,所以先进行排序,排序后能放进一个盒子的笔的权值v一定是连续的。之后记录两个值,一个是can[i],表示第i支笔...

Stupid_Turtle的博客 663

cf div2 #453 ABC(D)

赛中只搞出ABC,C想的还有点久,没时间搞D了(虽然是推了很久都没推出来),蒟蒻的上分之旅。 A. Visiting a Friend 题意: 你的初始位置为0,给你n和m,m表示你的目的地,n表示可乘坐工具的个数。接下来n行,每行一个x y,表示在位置x处有一个工具,你可以坐着它到位置y(你可以中途跳车,比如样例1中,0->2,2->4,在2->4过程中跳车,在位置3坐上3->

Stupid_Turtle的博客 545
上一篇: Poj 3279 Fliptile(反转/开关问题)
下一篇: 先刷一波线段树吧
Stupid_Turtle
博客等级 码龄9年 25粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值