码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【11.1】【VP】Codeforces Round #729 (Div. 2)


    ALL:6
    AC:2
    补题:2
    Rank:2958


    C. Strange Function

    题意:定义 f ( i ) f(i) f(i) 表示最小的正数满足不是 i i i 的因子。给定 n ( 1 ≤ n ≤ 1 0 16 ) n(1\leq n\leq 10^{16}) n(1≤n≤1016) ,求 ∑ i = 1 n f ( i ) \sum_{i=1}^n f(i) ∑i=1n​f(i) 。

    题解:CF1542C Strange Function

    思路:假设 x x x 是 i i i 的最小非因子,那么一定有 lcm ( 1 , 2 , ⋯   , x − 1 ) ∣ i \text{lcm}(1,2,\cdots ,x-1)\mid i lcm(1,2,⋯,x−1)∣i ,且 x ∤ i x\nmid i x∤i 成立。要求只满足第一条式子的数字个数,整除一下即可。如果还需要满足第二个条件,容斥一下即可。

    AC代码:https://codeforces.com/contest/1542/submission/178903704


    D. Priority Queue

    题意:

    给定一个序列 A A A, A A A 的每一个元素形如 + x 和 -,其中 x x x 为一个整数。

    对于一个每个元素都形如 + x 和 - 的序列 S S S,按如下方式计算 f ( S ) f(S) f(S) 的值:

    • 你需要依次遍历 S S S 中的元素,并且维护一个可重集 T T T。

    • 对于每个 S S S 中的元素,若其为 + x,那么就将 x x x 加入 T T T,否则就删除 T T T 最小的数。特别的,若 T T T 中没有数,那么就不进行删除操作。

    • 在遍历完 S S S 中的元素后,将可重集 T T T 中所有数的和 s u m sum sum 算出来。 s u m sum sum 即为 f ( S ) f(S) f(S) 的值。

    定义 b b b 是 a a a 的子序列当且仅当 b b b 是由 a a a 在不改变原有顺序的情况下删除若干元素得到的。现在对于 A A A 的所有子序列 B B B,蓝想让你求出 f ( B ) f(B) f(B) 的和模 998244353 998244353 998244353 的值。

    本题有 1 ≤ n ≤ 500 1 \leq n \leq 500 1≤n≤500,并且对于每个形如 + x 元素中的 x x x,有 1 ≤ x < 998244353 1 \leq x < 998244353 1≤x<998244353。

    题解:CF1542D Priority Queue 题解

    思路:这是一道细节很多的 DP 题。

    考虑求每个数字 x = a k x=a_k x=ak​ 的贡献次数,即出现在了多少个子序列中。

    设 d p ( i , j ) dp(i,j) dp(i,j) 表示前 i i i 个数的所有可重子集(包括 x x x ,表示为 { a d ∣ d ∈ [ 1 , i ] , d ≠ k } ∪ { x } \{ a_{d} |d\in[1,i],d\neq k \} \cup \{x\} {ad​∣d∈[1,i],d=k}∪{x} )中,有 j j j 个小于 x x x 的数字的序列个数。

    DP 方程及推导详见题解。提几个要注意的细节。

    1. 对于 o p i = − op_i=- opi​=− 的情况,当 i < k , j = 0 ii<k,j=0 时,要多转移一个,而 i > k , j = 0 i>k,j=0 i>k,j=0 时不能多转移(因为要考虑操作该 o p op op 时 a k a_k ak​ 是否在集合中)。
    2. 对于 o p i = + op_i=+ opi​=+ 的情况,如果 a i = a k a_i=a_k ai​=ak​ ,为了避免算重算漏,把 i < k ii<k 归到一类转移,把 i > k i>k i>k 归到另一个转移。

    AC代码:https://codeforces.com/contest/1542/submission/178906123

  • 相关阅读:
    Vue之组件传值 provide-inject 非响应式,组件传值 provide-inject 响应式,自定义事件,动态组件,缓存组件,异步组件
    Linux 夺命连环11问你能答对几个?
    Go语言中的File文件操作
    入门力扣自学笔记278 C++ (题目编号:2605)
    轻松导航:教你在Excel中添加超链接功能
    面试系列多线程:谈谈线程池的核心参数及工作原理
    有哪些电容笔值得推荐?值得买的电容笔测评
    C++ STL库 list(链表)
    【干活分享-年薪百万以上】Java高端人才应具备的能力
    Tushare上的数据为什么会缺失呢?
  • 原文地址:https://blog.csdn.net/weixin_51948235/article/details/127647062
  • 最新文章
  • 【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号