CF 449E Jzzhu and Squares解题报告

daily-stock-analysis(Python) 「daily_stock_analysis(Python)」是后台管理系统(Python)。项目简介:LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.源码完整,下载解压即可查看使用,适合学习参考、课程设计与二次开发。 立即下载

题目大意


给定一个N*M的网格。对一个顶点为格点的正方形R(不一定与格线平行),计算出其中有多少个单位格被R完全包含(记作F(R))。求所有正方形的F(R)之和。

题解

首先画一个“勾股图”:



粉色是我们的正方形(不和格线平行),设其外接正方形的边长为L,四周直角三角形的短边为a,则长边为L-a。设其中完整包含了F(L,a)个单位格。

可以发现,其中完全包含的单位正方形分成两部分:第一部分是中间小正方形里的个,第二部分是周边直角三角形里包含的。

我们这么计算第二部分:一红一白两个直角三角形拼成的矩形内有(L-a)*a个单位格,而对角线穿过了L-gcd(L,a)格,再除以2,就得到了一个三角形内的单位格数。将其乘以4,总共加起来得到:



没错,“斜线下方的格点数”没有简单公式,但“单位格数”有!

可以发现,F(L,a)即使当a>L-a时也成立,所以我们可以直接用a枚举到底,整道题目的答案就是:



我们把展开:



这分成两部分:第一部分是一个关于L的多项式,第二部分是gcd(L,a)的前缀和。

可以想象,也是如此分成两部分:第一部分是一个关于L的多项式(确切地说,是5次多项式),第二部分也是一个关于L的“多项式”,但其“未知数项”不是这种形式,而是这种形式。

至于怎么得到这个多项式呢,如果你数学好可以手推……作为一名数学技能荒废一年的咸鱼选手,我就直接用vector当低配版多项式类,让电脑推了……

不要忘了,我们要求的是上面那个玩意的前缀和。因此,只需要求出来和这两种形式关于L的“前缀和”,然后乘以多项式中相应的系数,就可以完成任务。

前者很简单:L不超过10^6,暴力递推即可。后者也差不多,只需要先递推出来phi函数,然后枚举gcd(a,L)的值,就可以把Σgcd的表都打出来,详见代码。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
typedef long long LL;
typedef vector<LL> Poly;
const LL MOD=1000000007;
const int H=6;
LL gcd(LL a,LL b){
	return !b?a:gcd(b,a%b);
}
LL lcm(LL a,LL b){
	return a*b/gcd(a,b);
}
LL quickpow(LL a,LL n){
	LL ans=1;
	while(n){
		if(n&1) ans=(ans*a)%MOD;
		a=(a*a)%MOD;
		n>>=1;
	}
	return ans;
}
LL inverse(LL a){
	return quickpow(a,MOD-2);
}
void print(Poly a){
	for(int i=0;i<a.size();i++){cout<<a[i]<<" ";}cout<<endl;
}
Poly operator * (Poly a,LL b){
	for(int i=0;i<a.size();i++){
		a[i]*=b;
		a[i]%=MOD;
	}
	return a;
}
Poly operator / (Poly a,LL b){
	return a*inverse(b);
}
Poly operator + (Poly a,Poly b){
	Poly c;
	int n=max(a.size(),b.size());
	c.resize(n);
	for(int i=0;i<a.size();i++){
		c[i]+=a[i];
		c[i]%=MOD;
	}
	for(int i=0;i<b.size();i++){
		c[i]+=b[i];
		c[i]%=MOD;
	}
	return c;
}
Poly operator * (Poly a,Poly b){
	Poly c;
	c.resize(a.size()+b.size()-1);
	for(int i=0;i<a.size();i++){
		for(int j=0;j<b.size();j++){
			c[i+j]+=a[i]*b[j]%MOD;
			c[i+j]%=MOD;
		}
	}
	return c;
}
const int SIZEN=1000010;
LL calc_presum_with(Poly a,LL ps[]){
	LL ans=0;
	for(int i=0;i<a.size();i++){
		ans+=(a[i]*ps[i])%MOD;
		ans%=MOD;
	}
	return ans;
}
Poly give_Fsum_L(void){//the component without gcd
	static LL A[10];
	A[0]=1;Poly ans(A,A+1);
	A[0]=0,A[1]=1;ans=ans*Poly(A,A+2);
	A[0]=1,A[1]=1;ans=ans*Poly(A,A+2);
	A[0]=1,A[1]=2;ans=ans*Poly(A,A+2);
	ans=ans/3;
	A[0]=0,A[1]=0,A[2]=-3;ans=ans+Poly(A,A+3);
	return ans;
}
LL G[SIZEN]={0};
LL phi[SIZEN];
LL P[SIZEN][H],PG[SIZEN][H];
void work(LL N,LL M){
	static LL A[10]; 
	if(N>M) swap(N,M);
	//N是较小者
	A[0]=M+1,A[1]=-1;Poly D(A,A+2);
	A[0]=N+1,A[1]=-1;D=D*Poly(A,A+2);
	Poly F=give_Fsum_L();
	Poly F1=D*F;
	LL ans=0;
	ans+=calc_presum_with(F1,P[N]);
	ans%=MOD;
	A[0]=2;
	Poly F2=D*Poly(A,A+1);
	ans+=calc_presum_with(F2,PG[N]);
	ans%=MOD;
	ans=(ans+MOD)%MOD;
	printf("%I64d\n",ans);
}
void prepare(void){
	for(int i=1;i<SIZEN;i++){//精妙的求phi方法 
		phi[i]+=i;
		for(int j=i+i;j<SIZEN;j+=i){
			phi[j]-=phi[i];
		}
	}
	for(int g=1;g<SIZEN;g++){//求gcd(x,i)的前缀和 
		G[g]+=g;
		G[g]%=MOD;
		for(int x=2*g,d=2;x<SIZEN;x+=g,d++){
			G[x]+=(g*phi[d]%MOD);
			G[x]%=MOD;
		}
	}
	for(int i=0;i<H;i++){P[0][i]=PG[0][i]=0;}
	for(LL x=1;x<SIZEN;x++){
		LL p=1;
		for(int i=0;i<H;i++){
			P[x][i]=(P[x-1][i]+p)%MOD;
			PG[x][i]=(PG[x-1][i]+(p*G[x])%MOD)%MOD;
			p=(p*x)%MOD;
		}
	}
}
int main(){
	prepare();
	LL T,N,M;
	scanf("%I64d",&T);
	while(T--){
		scanf("%I64d%I64d",&N,&M);
		work(N,M);
	}
	return 0;
}


工具调用智能体可靠性基准数据集验证门重试 面向工具调用型AI智能体可靠性研究的合成基准数据集,研究预执行验证门与有限重试机制如何改变智能体任务完成率、无效动作率与调用成本。包含120张合成工单、1440个模拟回合(4种策略×3种工具故障率)与本地大语言模型试点实验(qwen2.5:3b)。实验结果显示:10%工具故障率下基线策略完成率仅30.0%,验证门加重试组合达97.5%;大模型试点中无防护时8张工单完成5张,加防护后8张全部完成。附结果明细、策略汇总、实验元数据与README共8个文件。适用于智能体工程、工具调用可靠性评估、防护机制设计与大模型应用研究。数据许可:CC0公共领域。 立即下载

相关推荐

企业员工人力资源数据集3000人60家公司

描述60家公司、8个行业3000名员工的人力资源分析合成数据集,公司表含行业、城市、规模、成立年份与远程办公政策,员工表含人口统计、职位、薪资、绩效、满意度与流失标签,经company_id关联,另附合并后的全宽表(3000行×23列)即取即用。数据由Python按列间真实关联生成(薪资取决于职级、学历、行业与城市),无任何真实人物或公司信息。适用于人力资源分析、员工流失预测、薪资建模、组织行为研究、HR分析教学与SQL练习,也是数据科学课程与实习项目的理想入门数据集。数据许可:CC0公共领域。

CF449E Jzzhu and Squares

题目大意:有一个$n\times m$的方格图,求其中所有的格点正方形完整包含的小方格个数,多组询问。$n,m\leqslant 10^6$ 题解:令$n\leqslant m$。有一个显然的式子:$$ans=\sum\limits_{i=1}^n(n-i+1)(m-i+1)f(i)$$$f(i)$表示可以完整包含在$i\times i$的正方形中且顶点在这个正方形边上的正方形所包含的小方格总数...

weixin_30951743的博客 222

Python 批量处理大量压缩包|递归嵌套解压 zip rar 7z tar,文件名乱码修复,扫描残留压缩包工具

在收集大量计算机源码时,经常遇到海量多层嵌套压缩包:zip、rar、7z、tar、tar‑gz 混杂,老压缩包中文文件名 GBK 编码解压出现乱码,解压完成后不确定目录内是否还有遗留未解压的压缩包。 本工具集由 3 份 Python 脚本组成,专门针对大批量源码文件夹做自动化预处理,不用手动一个个解压,自动递归遍历所有子目录,处理嵌套压缩包,修复中文文件名乱码,扫描校验残留压缩包,输出完整处理日志。 前置条件 - Python3.8 及以上环境 - 如果要处理 rar/7z 格式:电脑安装 **7‑Zip**,记录 7z.exe 的完整路径,填到 `jieyarar.py` 配置区。 1. 修改每个脚本顶部配置区:`SCAN_ROOT / TARGET_FOLDER` 修改为你存放文件的根目录绝对路径(Windows 路径字符串前面加 r,例如 `r"F:\files\download"`) 2. 第一步:运行 `main.py`,优先处理全部 zip 压缩包,执行完成查看生成的 `unzip_log.txt` 日志; 3. 第二步:运行 `jieyarar.py`,处理 rar、7z、tar 等其它格式压缩包,查看 `unpack_all_archive_log.txt`; 4. 第三步:运行 `checkfiel.py`,全盘扫描校验,输出 `scan_archive_and_badname.txt`; - 查看报告:确认是否还有残留压缩包、是否存在乱码文件名; 5. 根据日志,手动单独处理加密、损坏的压缩包。

CF 257Div.1 E (449E)

Description:      ~~~~~~在平面直角坐标系中,四个端点为 (x,y),(x+1,y),(x,y+1),(x+1,y+1)(x,y),(x+1,y),(x,y+1),(x+1,y+1) 的正方形称为单位正方形。之后我们考虑所有端点在 (0,0)∼(N,M) (N,M<=106)(0,0)\sim(N,M)~(N,M<=10^6)范围内的正方形,所有被其包含完全包含的单位正方形,都

zzj的专栏 620

AI聚合api网关系统源码+部署教程

AI聚合api网关系统源码+部署教程

005_临床路径信息化对医疗质量与费用控制的影响.docx

005_临床路径信息化对医疗质量与费用控制的影响

Codeforces #449 Div.1 E: Welcome home, Chtholly(分块+并查集)

传送门题意: 给一个序列,支持如下操作: 1.l,r,x a[l~r]所有大于x的数减去x 2.l,r,x 查询a[l~r]中x的个数。 n,l,r,x≤1e5n,l,r,x\le 1e5题解:好妙的一道题。。记一个块的最大值(不超过O(n)O(n))。并查集维护每个块中的所有权值。每次修改时判断当前修改的值的两倍是否大于当前块的最大值。若不大于,则暴力修改小的部分(小的部分+v)并打修改标

DZYO的博客 438

国央企在推动内部技术转化时,如何实现技术需求的精准挖掘与匹配?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

soj#552 449E Jzzhu and Squares

分析 https://www.cnblogs.com/Memory-of-winter/p/11209128.html 代码 #include<bits/stdc++.h> using namespace std; #define int long long const int N = 1e6+5; const int mod = 1e9+7; int ...

weixin_30436101的博客 143

科技中介服务机构在对接企业与高校科研成果时,如何快速挖掘企业的隐性技术需求?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何高效跟踪技术需求,以便精准对接企业创新资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BZOJ 3505 浅谈组合数学在图形区域分割问题的应用

世界真的很大 在数论中,组合数和欧拉函数一样是个神奇的东西 如果说凡是看到gcd就要想到欧拉的话 那凡是看到“选几个”就应该往组合数方面想了 这种代码简单的玩意儿 难度全在于如何应用,理解的不够好,或者建模方法有问题 都是可能能卡很久的,尤其是代码量真的很短的情况下 就更悲催了 比如我就已经看了一整个晚上都没有想出来 最后还得大神指导才想到了正确的建模方法 哎。。还是不行啊。。2

BerryKanry的博客 924

天空图像和光伏发电预测研究(Python代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,聚焦于电力电子领域中的隔离型全桥LLC谐振变换器,系统性地提供了基于PLECS或Simulink平台的建模、仿真与参数设计资料。内容涵盖系统建模方法、谐振腔关键参数(Lr、Lm、Cr)设计、仿真模型搭建及性能分析,重点实现软开关技术、高效率能量转换与良好的动态响应特性,适用于对电源转换效率和可靠性要求较高的工程与科研场景。文档强调“顶级EI复现”标准,突出了其在学术研究与工程实践中的高参考价值与严谨性。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,熟悉PLECS或Simulink仿真工具,从事高频DC-DC变换器设计、新能源电源研发或攻读硕士、博士阶段科研工作的技术人员与高校师生。; 使用场景及目标:① 深入理解全桥LLC谐振变换器的工作原理与谐振特性;② 复现高水平学术论文(如EI期刊级别)中的仿真模型与实验结果;③ 设计并优化实际工程中的高效、高功率密度电源系统,重点开展软开关实现、效率优化及参数敏感性分析。; 阅读建议:建议学习者结合文档中提供的仿真模型、设计报告与计算书进行一体化学习与实践,重点关注谐振参数的计算过程与仿真验证方法,并以“顶级EI复现”为标准,反复校验模型的准确性与性能指标,确保理论与实践紧密结合。

CF 449D 题解(状压+容斥)

状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]... 于是如果我们求出了g,就可以求出ans 可是怎么求出g呢 我们记f[i]表示a&amp;i==i这样的a的个数,那么如果i某一位上为1,则a这一位上也为1 于是我们可以枚举所有可能...

lleozhang的博客 575

三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现)

内容概要:本文档提供了三电平Buck直流变换器的开环、单闭环和双闭环控制系统的Simulink仿真模型及相关参考文献,系统地展示了不同控制策略下变换器的动态响应、稳定性和输出精度等关键性能指标。通过对开环、单闭环(如电压环)与双闭环(如电压-电流双环)控制结构的建模与仿真对比,深入分析了各控制方式在抗干扰能力、调节速度和稳态误差等方面的优劣,有助于掌握三电平Buck变换器的核心控制原理与工程设计方法,适用于电力电子系统的研究、教学及实际工程项目中的控制策略验证。; 适合人群:电气工程、自动化、新能源技术等相关专业的高年级本科生、研究生,以及从事电力电子变换器研发、控制算法设计和系统仿真的工程技术人员。; 使用场景及目标:① 学习三电平Buck变换器的工作原理与数学建模方法;② 掌握开环与闭环控制策略的设计流程;③ 对比分析不同闭环控制结构的动态与静态性能;④ 支持课程设计、毕业设计、科研课题或产品开发中的仿真验证与优化; 阅读建议:建议结合提供的Simulink模型与参考文献进行同步学习,动手运行仿真并调整控制器参数(如PI参数),观察系统响应变化,重点关注阶跃负载下的输出电压波动、恢复时间及稳态精度,从而深化对控制理论与实践应用的理解。

大模型和任务型对话系统如何结合

三种方法都是基于prompt1.prompt中定义大量可分类的domain标签,每种标签含有的样例。走对话系统nlu常规步骤,domain分类,意图分类,slot提取等。缺点:需要很复杂的prompt,写的未必完善。需要多次调用llm2.prompt中定义每种query下可以调用的functioncall。3.也是基于prompt,可以管理对话主题,实现更丰富的话题流转。面向某个具体领域,没有细分的domain类别。

qq_29837229的博客 2450

【Codeforces 449D】Jzzhu and Numbers(高维前缀和)

传送门 先用高维前缀和求出iii的超集的个数aia_iai​ 然后2ai−12^{a_i}-12ai​−1就是&\&&之和为iii的超集的个数 然后高维前缀差分就得到为iii的答案 #include<bits/stdc++.h> using namespace std; #define cs const #define pb push_back #define ...

Stargazer的博客 371

AGV、RGV、四向车openTCS调度系统(三)车辆适配器解读,封装自己的适配器

AGV、RGV、四向车调度。理解适配器的整体作用,以及如何使用官方例子改造自己的适配器,

要这头发有何用 3611

CodeForces 449C Jzzhu and Apples (贪心+构造)

题目链接 题意:          给出一个n,问n以内最多能构成多少组最大公约数&gt;1的数,并输出它们。 题解:          对于最大公约数&gt;1的任意2个数来说分为奇数和偶数的情况,奇数可以匹配它的倍数(可能是奇数也可能是偶数),然而偶数只能匹配偶数,那么我们为了能够得到更多的组合可以先对【3,n】的所有素数进行倍增(把尽可能多的奇数匹配掉),统计没有被访问过的倍增的总数...

Fushicho_XF的博客 320

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

面向边缘计算的YOLOv12模型剪枝-蒸馏联合优化实战教程**

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

FJN110的博客 159
上一篇: 基于仿真模拟的弹道导弹封锁跑道效能分析
下一篇: CF 461D Appleman and Complicated Task解题报告
wmdcstdio
博客等级 码龄12年 76粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值