码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【11.15】Codeforces 刷题


    DP \text{DP} DP :


    E. Packmen

    题意:

    输入 n ( 2 ≤ n ≤ 1 0 5 ) n(2\leq n\leq 10^5) n(2≤n≤105) , 接着给你一个长度为 n n n 的字符串。
    ∗ * ∗ 代表包装, P P P 代表人, . . . 代表为空, 人移动一单位距离需要花费一秒,人可以向左或者向右移动。人只要走到包装的位置,就会把包装吃掉,问你最少需要多少秒。所有的包装就被人全吃完。

    题解:CF847E Packmen 题解

    思路:虽然是在 DP \text{DP} DP 题单里,但是我用二分写的。这道题二分细节特别多。

    首先二分答案。check :

    实时维护第一个没有被清理的垃圾的位置,然后从左到右遍历每一个人。

    容易知道,一个人的策略是要么先右后左,要么先左后右。我们把第一个垃圾作为左边界,二分出来一个右边界,问这个人能把指针指向的这个垃圾清理掉,向右最远能走多远。这样能在这个人的最优策略下,把第一个垃圾清理掉,并尽可能向右走。

    AC代码:https://codeforces.com/contest/847/submission/181033864


    C. Helga Hufflepuff’s Cup

    题意:

    给你一棵 n ( 1 ≤ n ≤ 1 0 5 ) n(1 \leq n \leq 10^5) n(1≤n≤105) 个节点的树,可以染 m ( 1 ≤ m ≤ 1 0 9 ) m(1 \leq m \leq 10^9) m(1≤m≤109) 种颜色,定义一个特殊颜色 k ( 1 ≤ k ≤ m ) k(1 \leq k \leq m) k(1≤k≤m),要求保证整棵树上特殊颜色的个数不超过 x ( 1 ≤ x ≤ 10 ) x(1 \leq x \leq 10) x(1≤x≤10) 个。同时,如果一个结点是特殊颜色,那么它的相邻结点的颜色编号必须全部小于 k k k。求方案数。

    思路:树上背包。不多解释,详见 题解 。

    AC代码:https://codeforces.com/contest/855/submission/181046023


    构造题 ∗ 1700 ∼ ∗ 2000 ^*1700\sim ^*2000 ∗1700∼∗2000 :


    E. MEX and Increments

    题意:

    给你一个长度为 n ( 1 ≤ n ≤ 2 ⋅ 1 0 5 ) n(1\leq n\leq 2\cdot 10^5) n(1≤n≤2⋅105) 的数列 a ( 0 ≤ a i ≤ n ) a(0\leq a_i\leq n) a(0≤ai​≤n) ,每次可以花费 1 1 1 代价将其中一个数加一。从 0 0 0 到 n n n 分别输出至少要花费多少才能使这个数是数列中没有出现的最小的非负整数。

    思路:简单贪心题。优先队列实现。

    AC代码:https://codeforces.com/contest/1619/submission/181050825


    B. Edge Weight Assignment

    题意:

    给定一棵 n ( 1 ≤ n ≤ 1 0 5 ) n(1\leq n\leq 10^5) n(1≤n≤105) 个点的无根树,要求给每条边分配一个正整数权值,使得任意两个叶子节点之间路径上的边权异或值为 0 0 0。求最少要多少种不同权值,以及最多可以使用多少种不同权值。
    这里,填入的边权值可以为任意大。

    思路:推理找性质和结论。最小值只可能为 1 , 3 1,3 1,3 两种。最大值表达式为 a n s = ∑ u ( ∑ v ∈ s o n ( u ) [ v 是 非 叶 子 节 点 ] + [ 存 在 v ∈ s o n ( u ) 为 叶 子 节 点 ] ) ans=\sum_u ( \sum_{v\in son(u)}[v 是非叶子节点] + [存在 v\in son(u) 为叶子节点] ) ans=∑u​(∑v∈son(u)​[v是非叶子节点]+[存在v∈son(u)为叶子节点]) 。易知换根不影响两者的答案,因此随便钦定一个非叶子节点为根即可。

    AC代码:https://codeforces.com/contest/1338/submission/181056728


    G. A/B Matrix

    题意:

    第一行包含一个整数 t t t ( 1 ≤ t ≤ 1000 ) (1\leq t\leq 1000) (1≤t≤1000),表示数据的组数。

    接下来有 t t t行输入,每行输入都包含四个正整数: n n n, m m m, a a a, b b b ( 1 ≤ b ≤ n ≤ 50 ; 1 ≤ a ≤ m ≤ 50 ) (1\leq b\leq n\leq 50;1\leq a\leq m\leq 50) (1≤b≤n≤50;1≤a≤m≤50)。其中, n , m n,m n,m为矩阵的行数和列数、 a , b a,b a,b为矩阵中每行包含的 1 1 1的个数和每列包含的 1 1 1的个数。

    思路:自己手摸了几个数据,想了一个方法,但有点麻烦。这个 题解 的方法更简单一些。

    AC代码:https://codeforces.com/contest/1360/submission/181062481


    E. Directing Edges

    题意:

    给定一个由有向边与无向边组成的图,现在需要你把所有的无向边变成有向边,使得形成的图中没有环。

    如果可以做到请输出该图,否则直接输出"NO"。

    2 ≤ n ≤ 2 ⋅ 1 0 5 , m ≤ 2 ⋅ 1 0 5 2\leq n\leq 2\cdot 10^5,m\leq 2\cdot 10^5 2≤n≤2⋅105,m≤2⋅105

    思路:和拓扑序结合起来的一道妙题。先把有向边抽出来拓扑,得到一个拓扑序,在拓扑序上从左到右连接无向边即可。

    对于树,根据深度来确定先后顺序;对于拓扑图,根据拓扑序确定先后顺序。

    AC代码:https://codeforces.com/contest/1385/submission/181076648

  • 相关阅读:
    pytorh终端化部署(C++)
    pyqt5:openpyxl 读取 Excel文件,显示在 QTableWidget 中
    优秀论文以及思路分析01
    《opencv学习笔记》-- 线性滤波:方框滤波、均值滤波、高斯滤波
    Python list列表删除元素(4种方法)
    Excel VLOOKUP实用教程之 02 vlookup如何双向查找,两个字段查询数据?(教程含数据excel)
    GDP-L-岩藻糖,鸟苷二磷酰岩藻糖,Guanosine 5′-diphospho-β-L-fucose sodium salt
    126. SAP UI5 进阶 - JSON 模型字段里的值,显示在最终 UI5 界面上的奥秘分析
    环路与快速破环
    大数据Hadoop之——Kafka API介绍与实战操作
  • 原文地址:https://blog.csdn.net/weixin_51948235/article/details/127872170
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号