2025 11联测8

王老师的差分约束

 文件 IO比赛题目

时间限制: 1000MS空间限制: 256MB

题目描述

王老师最近在学习 差分约束 这个算法

这个算法大致的思路就是讲不等式关系以建图的方式进行求解,找出符合不等式关系的一组解

现在王老师也出了一道这样的题目

王老师在心里设定了一个五位数 A

并且会告诉你一些关于这个数字的约束条件,王老师给出的约束条件共有 5 种类型:

  1. 1 x,表示 A≥x(10000≤x<100000)
  2. 2 x,表示 A≤x(10000≤x<100000)
  3. 3 x,表示 A 中不存在数字 x(0≤x≤9)
  4. 4 x y,表示 A 中至少有 x(0≤x≤5) 个 y(0≤y≤9)
  5. 5 x y,表示 A 中至多有 x(0≤x≤5) 个 y(0≤y≤9)

请你求出所有满足王老师给出约束的解

输入格式

输入第一行包含一个整数 n 表示王老师一共会给出 n 条约束条件

接下来 n 行,每行输入一条约束条件,格式如题中所述

输出格式

输出满足王老师给出约束条件的解,如果有多个解,请从小到大依次输出,每个答案占一行

样例输入 1 

3
1 12000
2 12200
4 4 1

样例输出 1 

12111

样例输入 2 

3
1 12000
2 12200
4 3 1

样例输出 2 

12011
12101
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12121
12131
12141
12151
12161
12171
12181
12191

提示/说明

数据范围

对于 20% 的数据满足:n=1 且仅包含操作 1 和 2

对于另外 20%的数据满足:仅包含操作 1 和 2

对于 100% 的数据,保证 1≤n≤100

代码

王老师的金手指

 文件 IO比赛题目

时间限制: 1000MS空间限制: 512MB

题目描述

王老师 做了一道题目,题目最后需要输出一个字符串 B

但是 王老师 的代码写错了,他的代码输出了一个字符串 A

现在 王老师 已经没有时间再改代码了,于是他决定使用他的特殊技能——金手指

每次使用金手指,王老师 可以选定两个字母 x,y(这里用 x,y 代替字母),他可以任选字符串 A 和字符串 B 中存在的 x 变成 y

例如对于下列两个字符串

A = acac
B = abab

王老师 选择将 a 变成 d

那么其中几种变化结果为

A = dcdc,B = abab
A = dcac,B = abab
A = acdc,B = dbdb

现在 王老师 想知道,他最少使用几次金手指,才能让他通过这道题(即让 A 和 B 相等)

输入格式

第一行一个整数 n,表示字符串的长度。

接下来的两行,每行一个长度为 n 的字符串,即 A 和 B。

输出格式

一行一个整数,表示最少使用金手指的次数。

样例输入 1 

3
aab
zcb

样例输出 1 

2

提示/说明

数据范围

对于 30% 的数据,1≤n≤10。

对于 70% 的数据,1≤n≤103。

对于 100% 的数据,1≤n≤105。

样例解释

其中一种方案是先将 z 变成 a,再将 c 变成 a

代码

王老师的加倍快乐

 文件 IO比赛题目

时间限制: 1000MS空间限制: 256MB

题目描述

众所周知,在平时刷题的时候,AC 就代表了快乐,而 AK 则代表了加倍快乐!

随着不断的刷题,王老师越发的喜欢 AC,AK 这两个词了

于是有一天他在发呆的时候,发现自己无意识地在纸上写下了一排 AC,AK!

但是由于王老师是在发呆的时候写的,所以这一排字母中的 A,C,K 的数量和位置是随机的

王老师觉得这样的序列并不快乐,他想用序列组成很多的 AC,AK,但是他太菜了,没有办法实现,并且他也不会用这个问题难为你。

于是王老师简化了一下要求,他现在只希望不要出现相邻的 AA,CC,KK 就可以了

现在王老师想知道,他最少经过几次交换才可以满足他的要求?

P.S. 王老师每次只能交换两个相邻的字母

输入格式

输入一行字符串 S,保证仅包含 A,C,K 三个字母

输出格式

输出一个整数,表示最少的操作次数,若不可能满足王老师的要求,则输出 Impossible!

样例输入 1 

ACAKA

样例输出 1 

0

样例输入 2 

AACKK

样例输出 2 

2

样例输入 3 

AAAAKKKAKAKCKCKAKAKCACAKCAKAAKCACCAKCAAAKCAKCK

样例输出 3 

12

提示/说明

数据范围

对于 30% 的数据:∣S∣≤12。

对于另外 30% 的数据:其中一个字母的数量大于 ⌊∣S∣/2⌋

对于 100% 的数据:∣S∣≤400。

样例解释2

第一步交换后:ACAKK
第二步交换后:ACKAK

代码

王老师和最短路

 文件 IO比赛题目

时间限制: 2000MS空间限制: 512MB

题目描述

题目背景

走路的时候,王老师非常喜欢用各种奇怪的方式衡量自己这次走路的效率。

题目描述

王老师所在的城市有 n 个路口和 m 条连接两个路口的单向道路,且任何两个路口互相(直接或间接)可达。每条道路从第 ui​ 个路口通向第 vi​ 个路口,且名为 wi​。不知道为什么,王老师离开一个路口就不能再回去了(也就是说 图无环)。

从一个路口到另一个路口可能有很多种路径。一条路径的权值为这条路径经过的每条道路的名字依次相连,例如依次经过道路 “awa”、“qwq”、“ovo” 的路径的权值 p 为 “awaqwqovo”。

  1. 有的时候,王老师觉得更短的路更优秀,因此她最喜欢走权值 p 的长度最短的路径。如果有多条路径具有相同的权值长度,她会优先走权值的字典序最小的那条。
  2. 有的时候,王老师又会觉得权值更小的路更优秀,因此她会直接优先走权值字典序最小的路径。

对于两个字符串 s,t,我们称 s 的字典序比 t 小,当且仅当 ∃i∈[1,max(∣s∣,∣t∣)] 满足 s1​=t1​,s2​=t2​,…,si−1​=ti−1​,si​<ti​。对于一个 i>∣s∣,定义 si​=0,其中字符 0 小于任何其它字符。

王老师只会从自己的家所在路口(路口 1)出发,并去向第 n 个路口。王老师想知道,在上述两种情况下,她会优先走的那条路径的权值是什么。你能帮帮她吗?

输入格式

第 1 行,输入 3 个正整数 n,m。

接下来 m 行,每行输入 2 个正整数 ui​,vi​ 和 1 个只包含小写字母的字符串 wi​。

输出格式

输出 1 行 2 个字符串,分别代表在情况 1 和 2 时王老师会优先走的路径的权值。

数据保证,一定存在一条路径使得路口 1 能够到达路口 n。

样例输入 1 

4 6
1 2 aa
1 3 b
1 4 c
2 3 d
2 4 dd
3 4 c

样例输出 1 

c aadc

提示/说明

形式化题意

王老师所在城市的路口和道路可以分别抽象为点集 V=[1,n]∩ N 和边集 E={(u1​,v1​),(u2​,v2​),…,(um​,vm​)},它们组成有向无环图 G(V,E)。每条边 (ui​,vi​)∈E 均有一个字符串权 wi​。

定义一条路径为有序 k(k≥1) 元组 (a1​,a2​,…,ak​),满足 ∀1≤i<k,有 vai​​=uai+1​​。定义一条路径 (a1​,a2​,…,ak​) 的权值为 wa1​​,wa2​​,…,wak​​ 顺次连接的结果。

请求出在以下两种情况下点 1 到点 n 的最小权路径。

  1. 对于两个字符串 s,t,s<t 当且仅当 ∣s∣<∣t∣∨(∣s∣=∣t∣∧(∃i∈[1,max(∣s∣,∣t∣)] s.t. s1​=t1​,s2​=t2​,…,si−1​=ti−1​,si​<ti​))。
  2. 对于两个字符串 s,t,s<t 当且仅当 ∃i∈[1,max(∣s∣,∣t∣)] s.t. s1​=t1​,s2​=t2​,…,si−1​=ti−1​,si​<ti​。

额外定义,对于字符串 s 和整数 i>∣s∣,si​=0,其中 0 小于任何其它字符。

数据范围

本题设置 25 个测试点,每个测试点 4 分。同时,每个测试点满足一些限制,见下:

测试点编号n ≤m ≤特殊性质
11050r
21050r
31001000r
41001000r
520004000g
620004000g
720004000g
82000104r
92000104
102000104
111052×105g
121052×105g
131052×105g
141055×105s(1)
151055×105s(1)
161055×105s(1)
171055×105s(1)
181055×105s(2)
191055×105s(2)
201055×105s(2)
211055×105s(2)
221055×105r
231055×105r
241055×105
251055×105

特别地,特殊性质 g 代表:图为网格图;s(x) 代表:每条边的名(边权) wi​ 均满足 ∣wi​∣=x;r 代表:数据随机生成。

网格图生成:设网格图尺寸为 x×y(xy=n),则网格图上每个节点 (i,j) 向 (i+1,j) 及 (i,j+1) 连边(若其存在)。之后,将每个坐标映射为一个路口,保证 (1,1) 处映射为路口 1,(x,y) 处映射为路口 n。额外保证 ∣wi​∣=1。

随机生成:先随机生成一个以 1 为根的叶向树,即 i 的父亲在 [1,i−1] 中等概率随机选取,并从每个节点的父亲向其连边;再随机生成 m−n+1 条边:先随机取一个深度不最大的节点 u,再随机取一个深度严格大于它的点 v,并连边 (u,v)。额外保证 ∣wi​∣≤4,并先等概率选取某个长度,再等概率选取该长度的一个合法字符串。

对全部数据,有 1≤n≤105,n−1≤m≤5×105,∣wi​∣≤105,∑∣wi​∣≤2×106。

代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值