AtCoder Regular Contest 103 - E Tr/ee (图论的构造)

AtCoder从小白到大神的进阶攻略 摘自https://www.cnblogs.com/LHYLHY/p/11572011.html 在此对作者表示感谢 AtCoder从小白到大神的进阶攻略 前言 现在全球最大的编程比赛记分网站非CodeForces和AtCoder莫属了,@ezoixx130大佬已经在去年介绍过CodeForces了(传送门),那么现在我们主要谈一下AtCoder。 简介 A... 阅读详情

https://arc103.contest.atcoder.jp/tasks/arc103_c

题意:

连通分量大小,即一些点被连起来,这些点的个数。

给你一个01串:

如果第i个字符是1,那么我们一定可以移除一条边(且必须移除),来得到大小为i的连通分量。

如果是0,我们无法移除一条边,来得到大小为i的连通分量。(即,不管移除哪一条边都没有机会得到)

问你能不能构造出这棵树。

 

POINT:

首先我们知道,如果能得到1的连通分量,那么肯定能得到n-1的。(另一半)。

所以-1的条件就是 x能够得到,但n-x却不能得到。显然是矛盾的。如果第n个字符是1,显然也是-1。因为我们必须移除一条边。

看这朵菊花,我们显然可以知道,这个树只能为100010。只能满足1和5的连通分量。为什么呢,因为这朵菊花只有5个叶子。只能删一条边,也就是删一个叶子。

 

 

看这两朵连起来的菊花,是不是只能为1001010010。

聪明的小伙伴看到这里一定明白了。

反正就是一朵朵菊花形成的树。如果是连续的1111,那么连起来的菊花就没有叶子了。

自己画画就知道怎么写了。

 

 

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
#define LL long long
const int N = 2e5+55;
char s[N];
int main()
{
	scanf("%s",s+1);
	int n=(int)strlen(s+1);
	if(s[n]=='1'||s[1]=='0'||s[n-1]=='0'){
		printf("-1\n");
		return 0;
	}
	int now = 2;
	while(now<=n-now){
		if(s[now]!=s[n-now]) {
			printf("-1\n");
			return 0;
		}
		now++;
	}
	int root=2,num=1;
	now=2;
	printf("2 1\n");
	while(now<=n-now){
		if(s[now]=='1'){
			printf("%d %d\n",++now,root);
			root=now;
		}else{
			printf("%d %d\n",++now,root);
		}
		num++;
	}
	for(int i=num+1;i<n;i++){
		printf("%d %d\n",root,++now);
	}

}

 

ACM图论专题-AtCoder-abc209_e-Problem E AtCoder-abc209_e-Problem E题目大意解法 题目大意 两个人可以在一堆字符串中选择一个作为开头 然后两人开始博弈,过程为: 当前选择的字符的前三位字符一定要是上一次选择的一样,而且不能改变顺序,谁最先不能走就比赛失败 两人的方案都以能活下去而不是以赢对手 解法 由于直接建图的话可能存在 n2n^2n2 条边,这是空间和事件不能接受的,故考虑将原有字符串拆点 其实际就是前三个字符和后三个字符在影响边的情况,所以我们将一个字符串拆开成为两个点,一个是其前三个字符代表的点,另一个是后三个字符 阅读详情

相关推荐

AtCoder 比赛助手。.zip

比赛项目代码

AtCoder Beginner Contest 226 E 图论 连通块中DFS判单环 思维

题目 给你一个N个点M条无向边的图。 没有自环和重边。 确定每条边的方向,要求让每个点的出度为1。 确定边的方向有几种情况。对998244353取模。 题解思路 当连通块N点M边。 当N==M的时候 就一定有一个自环。(满足连通就需要N-1条边) 当N < M的时候就可能有多个环了。这样某点出度必然为2。 小于时有某个点就出度为0了。 所以,要让每个点出度为1那这个连通块必然就是环了。 这样图里的连通块只能是环并且只有一个单环。 这里在连通块里dfs判环也感觉有点陌生。 贴大佬的话 大佬的题解 AC

从你的全世界路过 459

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

【图论】【生成树】(AtCoder Regular Contest 093 E) Bichrome Spanning Tree

题意: 给出一个N个点M条边无向连通图,现在需要给每条边染色(黑/白),染色完毕后,算出一颗至少包含一条黑边与一条白边的最小生成树,要求这个生成树的权值和为X,求染色的方案数。 N≤1000,M≤2000N≤1000,M≤2000N\leq 1000,M\leq 2000 分析: Atcoder的题的确很锻炼思维。 首先,一个众所周知的最小生成树算法:破圈算法。这就是本题解法的基础。...

氧化钠的博客 707

告别网络卡顿!保姆级教程:用国内镜像源5分钟搞定ESP32开发环境(Arduino IDE)

本文提供了一份保姆级教程,教你如何利用国内镜像源在5分钟内快速搭建ESP32开发环境(Arduino IDE),告别网络卡顿问题。教程详细介绍了镜像源配置、开发板安装、测试程序烧录等步骤,并包含与巴法云对接的实战案例,帮助开发者高效完成物联网项目。

weixin_42536058的博客 589

Synopsys PCIe IP 实战笔记:手把手教你配置本地数字回环(PIPE/RMMI)

本文详细介绍了Synopsys PCIe IP本地数字回环(PIPE/RMMI)的配置与调试全流程,涵盖硬件连接、寄存器操作及实战技巧。通过数字回环模式,开发者可在无真实对端设备的情况下验证PCIe接口功能,适用于芯片验证和FPGA原型开发。文章还提供了常见问题排查和性能优化建议,助力高效完成协议解析与调试。

weixin_30394669的博客 322

AtCoder1999 Candy Piles

题面 题意 有n堆糖果,每堆糖果有ai个,双方轮流吃糖果,每次可以选择将每堆糖果各吃一个或者吃光最多的那堆糖果,吃完糖的人算负,问先后手谁会赢。 做法 这题需要转化一下,可以将每堆糖果按数量降序排列,然后将第i堆糖果转化为高度为a[i]的矩形,然后从(1,1)开始走,吃光最多的一堆可以看作向右走一步,每堆各吃一个可以看作向上走一步,不能走出矩形,无路可走者算负。 对于这个问题可以...

yzyyylx的博客 657

自动驾驶仿真:基于Carsim开发的加速度请求模型

1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要给控制器仿真加速度的信号,控制器才会实现对纵向功能的控制。2、Carsim或者其他动力学软件,主要提供者节气门开度和主缸压力进行控制。我们在进行联合仿真时,往往都要通过PID的方式将请求加速度转换成对应的节气门开度与主缸压力传给动力学软件进行闭环控制。

zataji的博客 6912

Atcoder E - Connecting Cities 线段树

Solution 求最小生成树,考虑使用primprimprim算法。 首先定义已在生成树中的点集为AAA,不在的为BBB。 线段树维护555个量:AAA连到BBB的最小边权,A、BA、BA、B中ai+Di、ai−Dia_i+Di、a_i-Diai​+Di、ai​−Di的最小值。每次相当于从BBB中删去一个点,并加入AAA。 Code #include&lt;bits/stdc++.h&gt; u...

TYB的博客 724

FPGA时序约束:从时钟树到数据路径的深度解析与优化策略

本文深入解析FPGA时序约束的核心技术与优化策略,涵盖时钟树结构分析、时序报告解读和数据路径优化。重点探讨Vivado工具中的时序约束方法,包括时钟定义、异常约束和物理优化,帮助工程师掌握寄存器级时序分析和系统级协同设计,实现高性能FPGA设计。

u5v6w7的博客 651

当AI学会自我验证:Chain-of-Verification如何杜绝错误决策?

2025年,大模型"幻觉"问题已成为企业落地AI的最大障碍之一——金融风控中1.2%的误判率可能导致千万级损失,医疗诊断中3%的错误可能危及生命,法律文书中5%的事实偏差可能引发合规风险。MetaAI与Google联合提出的**Chain-of-Verification(CoVe,验证链)**技术,让AI具备"自我审视"能力,通过结构化验证流程将幻觉率降低68%+,在复杂决策场景准确率提升至95%+。本文系统拆解CoVe的技术原理、实施路径与行业实战,为企业提供AI决策可靠性保障的完整方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1080

0基础刷图论最短路 2(从ATcoder 0分到1800分)

ATC最短路2 (本文难度rated 1000~ 1200)题目来源:Atcoder题目收集:(里面按tag分类好了Atcoder的所有题目,类似cf)(访问需要魔法)

louisdlee的博客 705

第二篇:APS智能排产实战:OR-Tools与coptpy从入门到案例

专注于具体的技术实现,包括 OR-Tools 和 coptpy 的详细使用指南、建模技巧、日志解读,以及一个完整的两阶段生产排程案例。适合准备动手开发 APS 系统的工程师和研究者。

算法工程师 452

2018.09.29【Atcoder Regular Contest 103】E - Tr/ee(构造)

传送门 解析: 短代码神题。如果把我打比赛习惯的头文件去掉,真的是非常短的代码量了。 然而这道题并不是如此简单好想。 思路: 首先一棵树必然有叶子节点,也就是说s[1]s[1]s[1]必须为111,因为我们必然会有一刀能够切断该叶子节点的与其父亲的办法。 而s[n]s[n]s[n]不能为1,因为无论如何切,剩下的联通块都必然会减少节点个数...

anlongyi8087的博客 229

基于LLM的电商数据分析系统

随着电商行业的蓬勃发展,每天都会产生海量的数据,这些数据包含了用户的行为信息、商品信息、销售数据等。如何从这些繁杂的数据中提取有价值的信息,为电商企业的决策提供支持,成为了一个关键问题。基于LLM的电商数据分析系统的目的就是利用大语言模型强大的自然语言处理和数据分析能力,对电商数据进行深入挖掘和分析,帮助企业了解市场趋势、用户需求、商品销售情况等,从而制定更加合理的营销策略、优化商品库存管理、提升用户体验等。本系统的范围涵盖了电商领域的多个方面,包括用户行为分析、商品分析、销售数据分析等。

AI Python 编程之道的博客 807

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

AtCoder Regular Contest 103 E Tr/ee

Tr/ee 思路:按照下图所示连接 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second #defin...

weixin_34096182的博客 94

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

0基础刷图论最短路 3(从ATcoder 0分到1800分)

AT最短路刷题3(本文难度rated 1200~ 1400)题目来源:Atcoder题目收集:(里面按tag分类好了Atcoder的所有题目,类似cf)(访问需要魔法)这算是一个题单,各位有兴趣可以按照这个顺序来刷。我的代码仅供参考。会提示关键性质和步骤。部分有注释。洛谷、知乎、可以搜到题解。

louisdlee的博客 1057

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ARC 103 E Tr/ee - 构造

题目大意:给你一个01字符串,构造一颗树满足对于任意iii,s[i]=s[i]=s[i]=存在切掉恰好一条边的方案使得存在大小为i的连通块。 题解:首先判掉s[1]和s[n],以及s[i]=s[n-i],除此之外,设初始根为rt=1,从小到大考虑i=1…(n-1),连边(i+1,rt),若s[i]=1则rt=i+1。(也就是s[i]=1就向上走一步,否则添儿子)。可以发现这显然是对的。 #incl...

Mys_C_K的博客 472

推荐开源项目:AtCoder Problems - 提升编程竞赛效率的利器!

推荐开源项目:AtCoder Problems - 提升编程竞赛效率的利器! 项目地址:https://gitcode.com/gh_mirrors/at/AtCoderProblems 1、项目介绍 在程序员的世界里,参与在线编程竞赛是一种磨练技能和挑战自我的方式。而AtCoder是日本知名的一个在线编程竞赛平台,吸引了全球众多开发者参与。为了帮助这些用户更高效地解决AtCoder上的问题并跟踪...

gitblog_00012的博客 1033

0基础刷图论最短路 1(从ATcoder 0分到1800分)

ATC最短路1 (本文难度rated 0~ 1000) 题目来源:Atcoder 题目收集: https://atcoder-tags.herokuapp.com/tags/Graph/Shortest-Path (里面按tag分类好了Atcoder的所有题目,类似cf) (访问需要魔法) 文章目录ATC最短路1 (本文难度rated 0~ 1000)1-**Hands**2- **Cat Snuke and a Voyage**3-**Collision** https://atcoder.jp/cont

louisdlee的博客 1474

【AtCoder】E - Magical Ornament 图论 状压dp

题意:告诉你有哪些两两可以相邻,问你能不能排列出一个包含一串数的序列,且序列长度最小。 思路:不知道是不是想复杂了。写完感觉不是这个位置的题该有的难度(应该是我太菜了)。 1.首先,建图,相邻的对就连边,把题意转化成在该图上跑出一个最短路径包含序列中的所有点(点可重复)。 2.因为走的点的先后顺序未知,所以我们只能通过bfs得到单次从s开始到各点的最短路径,下一步要考虑顺序问题。 3.用dp[i][j]dp[i][j]dp[i][j]表示,走完i所表示的集合中的点,且最后一步是走到第j个点时的最优解。其中i

待到山花烂漫时 623

AtCoder Beginner Contest 061(CD)

AtCoder Beginner Contest 061(CD) C - Big Array 思路:mapmapmap排序记数,注意开LLLLLL D - Score Attack 此题题意严重不清晰,题目只要求d[n]d[n]d[n]是否可以无限增加,但是正解是点nnn必须在正环中才行。 因为考虑spfaspfaspfa判正环,或者暴力bellman−fordbellman-fordbellman−ford特判第nnn次和第2n2n2n次的d[n]d[n]d[n]是否相同来判正环。 spfaspfaspf

Harris-H的博客 644

Atcoder F - Mirrored(思维+搜索)

题目链接:http://arc075.contest.atcoder.jp/tasks/arc075_d 题意:求rev(N)=N+D的个数,rev表示取反。例如rev(123)=321 题解:具体看一下代码,这题需要思考一下,虽然是简单的dfs但是不好想到。 #include <iostream> #include <cstring> #incl...

awow80285的博客 274

NBUOJ 2383 泰拳之王(计数)

2383 泰拳之王 Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :131072/65536 KB(Java/Others) Submits : 22 | Solved : 2 Description     播求,泰拳王,本名颂巴万柴明,外号Buakaw Por.Puramuk,1982年5月8日生于

Mr_Treeeee的博客 1852
上一篇: AtCoder Regular Contest 103 - D Robot Arms (二进制构造)
下一篇: hihocoder 编程练习赛78 - D 泥泞的道路(最短路)
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值