zoukankan      html  css  js  c++  java
  • Codeforces Round #706 (Div. 2)

    Codeforces Round #706 (Div. 2)

    A Split it!

    题意

    给出字符串 (S)

    询问是否存在 (k+1) 个非空字符串使得

    (a_1a_2a_3...a_ka_{k+1}a_k...a=S)

    题解

    左右往中间扫就得了。

    代码

    109662326

    B Max and Mex

    题意

    (n) 个数, (k) 次操作,每次操作添加 (lceil frac {mex+max} 2 ceil)

    问最终有几种数。

    题解

    设 mex 为 (a) ,max 为 (b)

    显然 (a eq b)

    (a<b) 时,(lceil frac {a+b} 2 ceil>a) 会一直添加这个数

    (a>b) 时,显然集合里已经有了 (0,1,2,3,...,b),接下来会添加 (b+1) ,循环 (k) 次。

    代码

    109662934

    C Diamond Miner

    题意

    (n) 个矿工,坐标 ((0,y_i))

    (n) 个矿产,坐标 ((x_i,0))

    为每个矿工分配一个矿产,一个对一个,每个对答案的贡献是 (sqrt{x_i^2+y_i^2})

    求答案的最小值。

    题解

    结论题。

    将贡献转化为斜边

    不妨全取 (abs)

    如果交叉一定比不交叉的要劣(我是做的时候是举栗子的/shake)

    所以对矿工和矿产排序一个对一个。

    代码

    109663610

    D Let's Go Hiking

    题面

    给出一个排列。两个人 Q 和 D 玩游戏。

    Q 选定初始位置 (x) ,D 在他之后选定初始位置 (y)

    之后每个人轮流操作,每个人只能向左或向右走一步。

    Q 只能走数值越来越小的,D只能走数值越来越大的。

    两个人不能走对方现在在的格子。

    先不能动的人输。

    求能使 Q 取胜的 (x) 数目。

    题解

    求最长单调序列数目。假设最长的 (len)(cnt) 个序列达到时,

    如果 (cnt>2) ,Q 走一个最长链,D 走一个最长链,先手 Q 必输。

    如果 (cnt=1) ,Q 一开始走,D 就拦住他的下一步,Q 必输。

    如果 (cnt=2) ,为了防止出现 (cnt=1) 的情况,Q一定选择两个最长链的山峰走,如果没有山峰那Q就必输。

    如果有山峰,

    如果 (lmod 2=0),D选择其中一端的尾巴,Q是先手一定会输。

    如果 (lmod 2=1),D选择其中一端的尾巴,Q和它走同一端一定赢。如果D不选尾巴也不能赢。

    代码

    109668559

    E Garden of the Sun

    题意

    有一个 (n*m) 的花田。有雷电清除了一些格子的花,现在你要主动清除一些格子的花使得所有空格子两两可达(判断是否可达时,你只可以走向有公共边的格子)。而且希望一对空格子通路只有一条。

    注意:雷电清除的格子没有公共点或者公共边。

    题解

    多条通路的本质是环。

    全部清除。显然会形成多条环。

    如果隔一列清除一个也很容易形成环。

    隔两列清除一列,不可能形成环,但是可能不连通。

    因此要在空的两列里选择一行涂黑使得他们联通。

    如果无脑清除第一行,在第二行雷电清除的花时就会暴毙。

    注意到,第一行和第二行不可能同时在这两列里都有被雷电清除的花,

    所以选择有雷电清除的花的一行清除光。

    每一列掌管自己之前的两列。在不考虑时自动掌管左右两列。

    为了防止最后几列出问题。

    (mmod 3=0) 时,每3列一组清除中间列。

    (mmod 3=1) 时,每3列一组清除第一列。

    (mmod 3=2) 时,上面两种随便哪个都行。

    代码

    109685088

    F BFS Trees

    什么破题面 中考英语完蛋了

    题意

    我们管一张图的生成树叫a BFS tree rooted at 点 (s) ,当且仅当对于任意的点 (t),在图上 ((s,t)) 的最短路长度与在生成树上 ((s,t)) 的距离相等。

    给出一张图,定义 (f(x,y)) 是同时 rooted at 点 (x) 和点 (y) 的 BFS tree 数目。

    给出一张 (n)(m) 边的无边权无向图,计算对于所有 ((i,j))(f(i,j)) 并输出。

    题解

    计算 (f(i,j))

    求出 (dis[i][j])

    如果 (dis[i][k]+dis[k][j]-1=dis[i][j]) ,则 (k)(i)(j) 的最短路上。

    如果 (k>dis[i][j]),那肯定有多条最短路,感性理解一下拼起来变成图不可能是树了。(i,j) 两位意见不统一了。

    然后,考虑其他顶点 (i) 的贡献,在 (x)(y) 的bfs树中,有且仅有一条连接 (i)(j) 的边, (j) 满足 (dist(x,i)=dist(x,j)+1 and dist(y,i)=dist(y,j)+1)。(选定 (j) 是父亲)

    代码

    109740283

    qaqaq
  • 相关阅读:
    Element-ui前端自定义排序
    elementUI --- el-select 下拉框样式覆盖
    Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数
    ORA-01476: divisor is equal to zero解决方法
    Linux下安装Mysql
    Fastdfs安装
    java基础
    Markdown学习
    Maven构建SpringMVC环境报错“java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherSe
    解决IDEA提示Untrusted Server's certificate 证书不可用( Server's certificate is not trusted )
  • 原文地址:https://www.cnblogs.com/zdsrs060330/p/14520165.html
Copyright © 2011-2022 走看看