沪粤联赛 2024.2
用快速幂。
pair<ldb, ll> fpow(ldb a, int k) {
ll A = 0, R = 0;
while (a >= 10) {
a /= 10;
A++;
}
ldb r = 1.0;
while (k) {
if (k&1) {
r = r * a;
R += A;
while (r >= 10) {
r /= 10;
R++;
}
}
k >>= 1;
a = a * a;
A *= 2;
while (a >= 10) {
a /= 10;
A++;
}
}
return {r, R};
}
注意这里一定要用 long double a
,不要偷懒用两个变量只记录整数和小数后一位。
总有一个最优解,直线经过至少两条线段的端点。
于是枚举是哪两条线段的端点,然后枚举所有线段,判断直线是否经过。
如何判断一条直线是否经过一条线段?当然可以直接解析式求交点是否在范围内,但这里有一种不用推式子、精度损失,用到向量的方法。
首先判断是否有端点在直线上。
如若没有,就要判断端点是否在直线两侧。设端点为
为什么?因为如果在直线两侧,这两个三角形的方向,也就是相对于直线的顺/逆时针方向是不同的,那顺时针的有向面积应该是负数,逆时针的应该是正数。
怎么求三角形的有向面积?若以
容斥原理套 DP。
Nim 游戏:若每一堆石子数量的异或非
,则先手必胜。
如果只有操作
加上操作
操作
从低到高插入数,建立 01Trie。一次全局
显然 01Trie 也能删除、插入和启发式合并。
对于
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!