首页 > 其他分享 >做题笔记 III

做题笔记 III

时间:2024-02-20 12:55:41浏览次数:33  
标签:10 int sum 笔记 ans include III equiv

\(1 \sim 100\) 的题目在 做题笔记 II

\(\texttt{Le0**an}\):我写了四篇做题笔记、一篇生成函数详解和一篇模拟赛复盘了!

\(\texttt{xl****13}\):我写了零篇做题笔记了!!!111


\(101 \sim 125\)

\(\color{blue}(101)\) ARC172E Last 9 Digits

难度 \(^*2400\)。数论

抽象题。

有一个结论,对于 \(k \ge 2\),若 $x \bmod 2 \ne0 $ 且 \(x \bmod 5 \ne 0\) 则 \(n^n \equiv x \pmod {10^k}\) 一定有唯一解。可以考虑打表验证。

考虑如果 \(n^n \equiv x \pmod {10^k}\),则一定 \(n^n \equiv x \pmod {10^{k-1}}\)。那么我们从 \(k=2\) 开始,先暴力枚举找到 \(n^n \equiv x \pmod {10^{2}}\) 的 \(n\),然后考虑 \(n,n+10^k,n+2\cdot 10^k,\ldots,n+9\cdot10^k\) 一定是 \(n^n \equiv x \pmod {10^{k+1}}\) 的所有可能解,暴力检验即可。时间复杂度 \(\mathcal O(\log^2 x)\),带 \(10\) 倍常数。

代码
/**
*    author: sunkuangzheng
*    created: 20.02.2024 09:42:18
**/
#include<bits/stdc++.h>
#ifdef DEBUG_LOCAL
#include <mydebug/debug.h>
#endif
using ll = long long;
const int N = 5e5+5;
using namespace std;
int T,n,x,pw[11],d;
int qp(int a,int b,int mod){
    int r = 1;
    for(;b;b >>= 1,a = 1ll * a * a % mod) if(b & 1) r = 1ll * r * a % mod;
    return r;
}void los(){
    cin >> x; int ans = -1;
    for(int i = 0;i <= 99;i ++) if(qp(i,i,100) == x % 100) ans = i;
    for(int i = 3;i <= 9;i ++)
        for(int j = 0;j < 10;j ++)
            if(d = ans + j * pw[i - 1],qp(d,d,pw[i]) == x % pw[i]) ans = d;
    cout << ans << "\n";
}int main(){
    ios::sync_with_stdio(0),cin.tie(0);
    pw[0] = 1;
    for(int i = 1;i <= 9;i ++) pw[i] = pw[i - 1] * 10;
    for(cin >> T;T --;) los();
}

\(\color{blue}(102)\) ABC313G Redistribution of Piles

难度 \(^*2800\)。数学

首先先进行一次 \(2\) 操作再进行 \(1\) 操作没有意义,我们的操作序列形如 \(11\ldots 122\ldots 2\)。

考虑对 \(a\) 升序排序,如果当前所有数字都大于 \(0\),那你先进行一次 \(1\) 再进行一次 \(2\) 也没有意义。设当前 \(a_{i-1}\) 已经等于 \(0\),则背包里有 \(s = a_{i-1}(n-i+1)+\sum \limits_{j=1}^{i-1} a_j\) 个数字。设对 \(a_i\) 操作 \(k\) 次,则和会增加 \(k(n-i+1)\),容易发现这些操作后序列互不相同。也就是说,我们会得到 \(\sum \limits_{k=1}^{a_i-a_{i-1}} \lfloor\dfrac{s+k(n-i+1)}{n} \rfloor\),可以用 atcoder::floor_sum 求解。时间复杂度 \(\mathcal O(n \log m)\)。有一些实现细节。

代码
/**
*    author: sunkuangzheng
*    created: 20.02.2024 10:54:20
**/
#include<bits/stdc++.h>
#ifdef DEBUG_LOCAL
#include <mydebug/debug.h>
#endif
using ll = long long;
const int N = 5e5+5,mod = 998244353;
using namespace std;
#include <atcoder/all>
using Z = atcoder::modint998244353;
int T,n,a[N];
void los(){
    cin >> n; Z ans = 0; ll sum = 0;
    for(int i = 1;i <= n;i ++) cin >> a[i];
    sort(a+1,a+n+1); ans = a[1] + 1;
    for(int i = 1;i < n;i ++)
        sum += a[i],
        ans += atcoder::floor_sum(a[i + 1] - a[i] + 1,n,n - i,sum + 1ll * a[i] * (n - i)),
        ans -= atcoder::floor_sum(1,n,n - i,sum + 1ll * a[i] * (n - i)),
        ans += a[i + 1] - a[i];
    cout << ans.val();
}signed main(){
    ios::sync_with_stdio(0),cin.tie(0);
    for(T = 1;T --;) los();
}

标签:10,int,sum,笔记,ans,include,III,equiv
From: https://www.cnblogs.com/sunkuangzheng/p/18022860

相关文章

  • XSimGCL论文阅读笔记
    Abstract我们提出了一种非常简单的图对比学习方法作为推荐,该方法放弃了无效的图增强,而是使用一种简单而有效的基于噪声的嵌入增强来生成CL的视图Introduction这里介绍以下SimGCL的缺点:除了推荐任务的正向/反向传递外,每个小批内的对比任务还需要两个额外的正向和反向传递,也就是......
  • Godot学习中的问题及思考、学习笔记 03
    GameManager类在Godot项目中通常扮演着游戏管理器的角色,负责协调游戏内不同系统、状态和数据的管理。它是一种设计模式,用于集中管理游戏逻辑和状态,使得游戏的结构更加清晰,也便于维护和扩展。GameManager可以处理多种任务,包括但不限于:游戏状态管理:控制游戏的当前状态,比如开始......
  • [刷题笔记] P2881
    例题:P2881注意到\(n\le1000\)。数据较小。且有传递性,即如果\(x,y\)关系确定,\(y,z\)关系确定,那么\(x,z\)关系确定。考虑传递闭包。传递闭包从关系图的角度来说,如果原图上存在一条\(u,v\)路径,那么传递闭包就将\(u,v\)连边。传递闭包可以使用Floyd算法解决。枚举中......
  • MySQL 零碎笔记2
    1.分区表适用场景:业务简单,单表查询,且都跟时间范围查询相关。数据需要定期清理数据,无需保留全部数据。数据更新频率较低,只有写入操作。优点:查询条件包含分区条件时,可以直接扫描必要的分区。也可以直接指定必要的分区来提高查询效率。聚合查询时,可以很容易地在每个分区上并行......
  • 吴恩达深度学习笔记
    深度学习框架有很多种,都是封装好的,基本是不用我们处理,只要完成正向传播,反向传播就能通过框架完成,需要自己去选择学习合适的框架,并且知道如何运用; ————————————————————————————————————————————————————————————......
  • Programming Abstractions in C阅读笔记:p283-p292
    《ProgrammingAbstractionsinC》学习第72天,p283-p292总结,总计10页。一、技术总结1、anylasisofalgorithms算法分析——即判断程序的效率(efficiency)。2、mathematicalinduction(数学归纳法)3、Big-Onotation(大O标记法)4、constanttime(常量时间)5、lineartime(......
  • RabbitMQ 学习笔记 - 2
    WorkQueues工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。3.1......
  • 2.19 闲话 & 学习笔记 『 望向这片懵懂的土地/嘈杂念想充斥着思绪 』
    昨天没发闲话,今天事情太乱来不及写学术内容放昨天的学术内容吧今天去面试,感觉说的跟个......
  • Go语言精进之路读书笔记第29条——使用接口作为程序水平组合的连接点
    如果说C++和Java是关于类型层次结构和类型分类的语言,那么Go则是关于组合的语言。——RobPike,Go语言之父“偏好组合,正交解耦”29.1一切皆组合在语言设计层面,Go提供了诸多正交的语法元素供后续组合使用,包括:Go语言无类型体系(typehierarchy),类型定义独立;方法和类型是正交......
  • 数学专题集训笔记
    感谢lsy学长来101给我们上课~Day1逆元对于一个\(a\),当\(ab\equiv1\pmod{m}\)时我们把\(b\)的最小整数解称作\(a\)模\(m\)的逆元,记作\(a^{-1}\)或\(\frac{1}{a}\)。接下来我们来看看逆元的求法。费尔马小定理如果\(a\)是一个整数,\(p\)是一个质数,则有\[a^p\e......