首页 > 其他分享 >10.24

10.24

时间:2024-10-24 15:09:15浏览次数:1  
标签:ch 10.24 log int gcd 线段 getchar

考前挂分是个好迹象,至少不像啥也不会那么绝望是不是/

A.城市间交通

第一眼整体二分+可撤销并查集,觉得有点难写,而且两个 \(\log\)。
再看一眼,发现最小生成树+倍增优秀单 \(\log\) 做法。

B.最小公倍数

第一眼这不是我们 P3911 最小公倍数之和 吗?
坏消息是忘了怎么莫反了。
于是写了个跟数学无关的两个 \(\log\) 普及组写法。

考虑设 \(f_{i,k}\) 为满足 \(\gcd(i,j)=k\) 的 \(j\) 的和,那么我们可以枚举 \(i\) 的倍数来求,但是 \(\gcd\) 可能不是 \(k\),所以要减去 \(\gcd=2k,3k,\dots,nk\) 的情况,倒着 \(dp\) ,每次枚举 \(k\) 的因数提前减去就好。

点击查看代码
#include <bits/stdc++.h>
#define LL long long
#define pb push_back
 
using namespace std;
 
inline int read()
{
	LL x = 0,f = 1;char ch = getchar();
	while(!isdigit(ch)) (ch == '-') && (f = -1),ch = getchar();
	while(isdigit(ch)) x = x*10+ch-48,ch = getchar();
	return x*f;
}

const int N = 50010;
int c[N];
LL s[N],f[N];
vector < int > d[N];

int main()
{
	for (int i = 1;i <= 5e4;i++)
		for (int j = i;j <= 5e4;j += i) d[j].pb(i);
	int n = read();
	for (int i = 1;i <= n;i++) c[read()]++;
	for (int i = 1;i <= 5e4;i++)
	{
		reverse(begin(d[i]),end(d[i]));
		for (int j = i;j <= 5e4;j += i) s[i] += 1LL*j*c[j];
	}
	LL ans = 0;
	for (int i = 1;i <= 5e4;i++)
	{
		for (int x : d[i])
		{
			f[x] += s[x];
			for (int j = 1;j < d[x].size();j++)	f[d[x][j]] -= f[x];
			ans = ans+1LL*i/x*c[i]*f[x];
		}
		for (int x : d[i]) f[x] = 0;
	}
	cout << ans;
	return 0;
}

C.衍生命题

应该没写挂,但是读错题了,写了个优秀的 线段树优化建图+线段树合并+可持久化线段树,拼在一块码量还挺小的。
所以代数之差里的代,为什么不是代数的代,而是第几代的代?

建一棵 \(\text{dfn}\) 序的线段树,每个节点维护一个按深度从小到大排序的 \(\text{vector}\),相邻大数往小数连边优化建图就完了。

标签:ch,10.24,log,int,gcd,线段,getchar
From: https://www.cnblogs.com/ZepX-D/p/18499652

相关文章

  • 2024.10.24 1234版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 10.24
    实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方法模式的动机,掌握该模式的结构;2、能够利用工厂方法模式解决实际问题。[实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgo......
  • 10.24
    一.填空题(共3题,60分)(填空题)支持向量到超平面的距离之和称之为。我的答案:(1)间隔(填空题)支持向量机的核心思想是(最大化/最小化)间隔。我的答案:(1)最大化(填空题)函数可以作为核函数。我的答案:(1)满足Mercer定理条件......
  • 2022.10.24
    练习情况P8593「KDOI-02」一个弹的投题目拆分为两个问题,一个是求每个炸弹的威力,另一个是求最多减少多少威力。根据物理知识可知,当且仅当\(y_i=y_j\)时,这两枚导弹才有可能相遇。将落地点离散化。使用权值树状数组求逆序对。Code:P8593CF1311FMovingPoints将速度离散......
  • 【闲话】01.10.24
    0110闲话头图:今日推歌:LonPi《绣球花feat.歌爱雪》前奏特别特别伟大,,,是与你十分相称的绣球花啊例行学术:关于\(Kruskal\)判环我23年10月的一点新理解:用\(fa\_u\)和\(fa\_v\)记录\(e[i]\)这条边所在链的两个端点。如:1-2-3-4-5-6-7这条链,假设\(e[3]\)是......
  • 10.24
    packagecom.itheima.mybatisdatabaseexample.pojo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importjava.time.LocalDate;importjava.time.LocalDateTime;@Data@AllArgsConstructor@NoArgsConstructorpublicclass......
  • 10.24随笔
    逻辑运算And:与同时满足两个条件的值。Select*fromempwheresal>2000andsal<3000;查询EMP表中SAL列中大于2000小于3000的值。Or:或满足其中一个条件的值Select*fromempwheresal>2000orcomm>500;查询emp表中SAL大于2000或COMM大于500......
  • 10.24
    今日学习内容<%@pageimport="java.sql.PreparedStatement"%><%@pageimport="java.sql.*"%><%@pageimport="java.sql.DriverManager"%><%--CreatedbyIntelliJIDEA.TochangethistemplateuseFile|Settings......
  • 大二快乐日记10.24
    3.@WebServlet实现多重映射Servlet3.0增加了对@WebServlet注解的支持,我们可以在urlPatterns属性中,以字符串数组的形式指定一组映射规则来实现Servlet的多重映射。以servletDemo为例,在@WebServlet注解的urlPatterns属性中添加一组虚拟路径,代码如下。纯文本复制pac......
  • Linux第四章文件权限 2023.10.24
    1、UGO设置文件属性与权限chown:修改文件属主,属性chgrp:修改文件属组chmod:修改文件权限 用法例如(1)chownqfedufile2;chownqfedu02.linuxfile2(2)chgrplinux02file2(3)  1、chmodu+xfile  2、chmodu=rwxfile  3、chmod721file2、基本权限ACL(1)使用get......