Codeforces 305E Playing with String

使用 Wireshark 进行计算机网络协议分析 文章目录实验前准备一、Wireshark抓包示例二、Wireshark实作1、数据链路层实作一 熟悉Ethernet帧结构实作二 了解子网内/外通信时的 MAC 地址实作三 掌握 ARP 解析过程2、网络层实作一 熟悉 IP 包结构实作二 IP 包的分段与重组实作三 考察 TTL 事件3、传输层实作一 熟悉 TCP 和 UDP 段结构实作二 分析 TCP 建立和释放连接4、应用层实作一 了解 DNS 解析实作二 了解 HTTP 的请求和应答 实验前准备 本部分实验用到的是抓包和协议分析软件——Wiresha 阅读详情

传送门:http://codeforces.com/problemset/problem/305/E

思路:首先每个字符都可选的子串可以看成一个独立的游戏,那么最终的答案就可以通过所有独立游戏的SG值的异或和得到。


代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
const int n=5010;
using namespace std;
int sg[n];char s[n];bool bo[n];

int getsg(int len){
	if (sg[len]!=-1) return sg[len];
	memset(bo,0,sizeof(bo));
	bo[getsg(len-2)]=1;
	for (int i=1;i+i<len;i++) bo[getsg(i-1)^getsg(len-i-2)]=1;
	for (int i=0;i<n;i++) if (!bo[i]) return sg[len]=i;
}

int getans(int l,int r){
	int sum=0;
	for (int i=l+1;i<=r-1;i++) 
		if (s[i+1]==s[i-1]){
			int len=0;
			while (s[i+1]==s[i-1]&&i<=r-1) i++,len++;
			sum^=sg[len];
			printf("%d\n",len);
		}
	return sum;
}

int main(){
	memset(sg,-1,sizeof(sg));
	sg[0]=0,sg[1]=1;
	for (int i=2;i<n;i++) if (sg[i]==-1) sg[i]=getsg(i);
	for (int i=0;i<=10;i++) { printf("%d",sg[i]); }
	while (scanf("%s",s)!=EOF){
		bool sec=1;
		for (int i=1,len=strlen(s);i<len-1;i++){
			if (s[i-1]!=s[i+1]) continue;
			if (getans(0,i-1)^getans(i+1,len-1)) continue;
			printf("First\n%d\n",i+1),sec=0;break;
		}
		if (sec) puts("Second");
	}
	return 0;
}


Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码) 本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。 阅读详情

相关推荐

高效搭建微信公众号爬虫全流程

微信公众号爬虫系统成功完成功能测试验证。该系统具备完整的数据采集与管理能力,支持多公众号内容爬取、数据存储与统计分析。通过命令行界面可执行爬取操作(如量子位、新智元等公众号),查看最新文章列表和系统统计信息。测试显示SQLite数据库正常存储数据,所有核心功能(多源支持、文章检索、数据统计)均运行良好。系统采用模块化设计,扩展性强,为后续接入真实API或网页爬取奠定了坚实基础,是AI内容聚合的优质开发平台。🎉

weixin_44975687的博客 1554

Codeforces 305E Playing with String 博弈

我们可以把每段连续可以选的字符看成一个游戏, 那么sg[ i ]表示连续 i 个字符可选的sg值。 然后找找第一个就好啦。 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair&...

253

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1555

CF305E Playing with String

  题目链接:http://codeforces.com/problemset/problem/305/E 题意:给出一个字符串s,两人轮流操作,每次选出一个位置i满足s[i-1]=s[i+1],那么之后s会分成三个串s[1,i-1],s[i,i],s[i+1,n]。谁先不能操作谁输?先手能赢的话输出先手第一次可以操作的最小位置? 思路:对于计算一个串的SG值,其实就是与这个串中的合法位置有...

weixin_33901641的博客 837

推荐算法之Thompson(汤普森)采样

如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布。 一、Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式如下: 这里的Γ表示gamma函数。 Beta分布的均值是: 方差: ...

weixin_30508241的博客 4259

【后缀自动机】Codeforces Round #305 (Div. 1) E. Mike and Friends

对所有的串加特殊字符隔开,单串建立后缀自动机。然后将每个的fa边反向建树,对树dfs得到dfs序,对dfs序建立线段树。询问离线,每个询问拆成1-(l-1)和1-r。。。按端点排序,然后每次加入线段树,查询k对应的节点的子树和。。。 #include #include #include #include #include #include #include #include #i

yysys 802

微信小程序地图开发避坑指南:腾讯地图API从配置到实战(附完整代码)

本文详细解析微信小程序中腾讯地图API的开发实践,从基础配置到高级功能实现,涵盖地图显示、地点搜索、路线规划等核心功能,并提供完整代码示例和常见问题解决方案,帮助开发者高效避坑。特别针对JavaScript SDK和map组件的使用进行了深度优化指导。

weixin_33725722的博客 486

5kyu—Play with two Strings

#include <string.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> void handover (char ch, char *str) { for(size_t i = 0; i < strlen(str); i++) { if( ch == toupper(str[i]) ) { if( isupper(str[i]) ) str[i]+=32;

weixin_53054309的博客 212

SAP MM采购合同创建全解析:ME31K操作与后台逻辑

在SAP ERP的物料管理模块中,采购合同作为框架协议的核心,定义了企业与供应商之间的长期供货关系。它与采购订单不同,合同不直接产生收货或发票,而是为后续采购订单提供数据源。创建合同(事务码ME31K)时,需要区分数量合同与金额合同,并维护抬头、行项目、有效期、价格条件和税码等关键信息。SAP通过源确定机制在创建采购订单时自动匹配合同,同时审批策略、编码范围和输出类型也会影响合同的实际可用性。掌握合同创建逻辑,能有效解决采购订单无法带出合同、审批未触发、价格缺失等高频问题。从ME31K实操出发,系统梳理采购

weixin_30000735的博客 196

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

codeforces 305E Playing with String

刚开始你只有一个字符串每次能选择一个有的字符串s,找到i,满足s[i - 1] = s[i + 1],将其分裂成3 个字符串s[1 ·· i - 1]; s[i]; s[i + 1 ·· |s|] 不能操作者负,求先手必胜的一个策略初始字符串长度不超过5000 将每个字符都能操作的连续的一段作为一个游戏,状态即可表示成这一段的长度 code: 1 #include<cs...

weixin_30950607的博客 166

【BUG已解决】pip install 出现 error: Microsoft Visual C++ 14.0 or greater is required 解决方案

方案磁盘占用适用场景推荐指数安装Build Tools3-6GB长期Windows Python开发⭐⭐⭐⭐⭐寻找预编译wheel无额外占用只是想快速装上某个包⭐⭐⭐⭐⭐用conda安装视包而定已经在用conda环境⭐⭐⭐⭐⭐升级到新版本无额外占用库本身有更新的预编译版本⭐⭐⭐⭐使用WSL2需要额外配置Linux子系统频繁遇到Windows编译问题⭐⭐⭐⭐的核心是Windows 缺少本地 C/C++ 编译器,而目标包需要在本机编译。先看是否有捷径。

博客 1万+

Playing with String(codeforces 305E)

题意:刚开始你只有一个字符串每次能选择一个有的字符串 s,找到 i,满足s[i - 1] = s[i + 1],将其分裂成 3 个字符串s[1 · · · i - 1]; s[i]; s[i + 1 · · · len]不能操作者负,求先手必胜的一个策略初始字符串长度不超过 5000 /* 一个很暴力的转移方法设SG[i][j],每次枚举断点,但是这样是O(n^3)的。 ...

weixin_30244681的博客 208

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Playing With Strings

Dani and Mike are two kids ,They are playing games all day and when they don't find a game to play they invent a game . There is about an hour to arrive to school, because they love playing with strin...

qq_41524782的博客 415

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C++ 算法训练 Playing with String

算法训练 Playing with String 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述   两个小哥正在玩一个游戏。   两个小哥轮流行动,不能操作的人输。   游戏开始前裁判买老师会在方格纸上写下一个字符串,每个格子包含一个字母。   比如字符串"abacaba"长这样: 一个小哥的操作分这么几步:   1.这个小哥选择一张纸,我们称上面写着的字符串为t。注意一开始时只有一张可选纸。   2.这个小哥选择一个i(1<=i<=|t|)使得存在一个正整数k(0&lt

weixin_43903942的博客 1053

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

c++ Gym - 101020I-Playing With String SDUT

题目大意:给出一个字符串,判断其是否是回文串,如果不是是否能经过交换字母的位置变成回文串,如果不能输出“impossible”,如果能输出该字符串的回文串,如果有多个回文串输出字典序小的串,如abcba和bacab都满足条件但是a的字典序小所以a应该在前输出abcba 思路:有一个数组储存字符串中每一个字符出现的次数,如果其中有字符出现次数为奇数但只有一个字符出现次数为奇数,或所有字符出现次数都为偶数,则可以形成回文串,否则不能形成回文串,输出时按照从前到后的顺序输出一般字符,然后再从后向前输出另一半字..

zhangzhaolin12的博客 298

I - Playing With Strings(字符能否够成对称)

I - Playing With Strings  Gym - 101020I  注意分一下奇偶: #include&lt;bits/stdc++.h&gt; using namespace std; int mmp[30]; int main() { int t; cin&gt;&gt;t; while(t--) { int sum=0; ...

BePosit的博客 516

蓝桥杯 算法训练 字符串的展开

虽然说遇到字符串就是水题,但是不得不说,要是得有不少的经验和很强的逻辑啊,我还是需要好好锻炼,我目前对于string的操作还是不够不自信,基本都是用char数组做 好了不多说了,这题就是说比较烦,转载一个博主的满分代码备查吧 链接如下 http://m.blog.youkuaiyun.com/github_33890270/article/details/50821538 #inc

Sunlight 587

【codeforces】Codeforces Round #305 (Div. 1)E. Mike and Friends【后缀数组+线段树】

传送门:【codeforces】Codeforces Round #305 (Div. 1)E. Mike and Friends题目分析:这题用后缀数组来做,十分直观(另一个原因是我后缀自动机并不会,只做过一道模板题,性质都不知道)。我的方法是O(nlog2n)O(nlog^2n),O(nlogn)O(nlogn)的方法就是把线段树换成主席树来实现(不想再改了)。首先将串接在一起,然后用后缀数组得

poursoul 1216

Codeforces Round #305 (Div. 1)E. Mike and Friends【后缀数组+线段树】

传送门:Codeforces Round #305 (Div. 1)E. Mike and Friends这题既然求得是子串,就可以用后缀数组来做(也可以用后缀自动机balabala) 我的方法是O(nlog2n)O(nlog2n),O(nlogn)O(nlogn)的方法就是把线段树换成主席树来实现,但是我并不会高冷的主席树。 首先用类似于求N个串的最长公共子串那样,将所有串接在一起,然后用后缀

Mr.Phoebe的专栏 954

bzoj1188: [HNOI2007]分裂游戏

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1188 思路:这题比较特殊,每个豆子是一个独立的游戏,SG的下标是豆子所处的位置。 知道了这一点就很好做了。 首先对于一个位置的两个豆子,一个人走一步,另一个人也可以走这一步,所以就抵消了 从SG函数的角度理解,这两个豆子的SG值相同,最后反正会被异或掉。 所以豆子数等于a[

thy的专栏 1753

bzoj3576: [Hnoi2014]江南乐

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3576 思路:每堆石子都构成一个独立的游戏,所以SG[x]就表示只有一堆数量为x的石子的游戏的SG值,显然当x 然后我们枚举每种分法,可以得到所有的SG值。但是这是O(n^2),TLE.... 为了降低复杂度,我们发现了一个很神奇的性质 n除以m最多只有O(根号n)个不同的值。

thy的专栏 1237

bzoj1115: [POI2009]石子游戏Kam

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1115 思路:首先差分,求出相邻两堆石子的个数之差,要求单调不降就是差分数组大于等于0。 然后我们考虑在第i堆移走j个,就等价于i+1与i的差扩大j,i与i-1的差缩小j。 这样就转化为另一个经典的游戏模型,阶梯NIM。 有n个阶梯,每个阶梯上都有一定数量的石子,每次都可以移任

thy的专栏 972
上一篇: hdu3949:XOR
下一篇: bzoj1115: [POI2009]石子游戏Kam
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值