#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <iomanip>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <vector>
#include <map>
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define uint unsigned int
#define l(x) ((x)<<1)
#define r(x) ((x)<<1|1)
#define lowbit(x) ((x)&(-(x)))
#define ms(a,b) memset(a,b,sizeof(a))
#define NSYNC std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
using namespace std;
const double PI = acos(-1.0);
struct point {
int x, y;
}list[1111];
int sta[1111], top;
int cross(point p0, point p1, point p2) {
return (p1.x - p0.x)*(p2.y - p0.y) - (p1.y - p0.y)*(p2.x - p0.x);
}
double dis(point p1, point p2) {
return sqrt((double)(p2.x - p1.x)*(p2.x - p1.x) + (p2.y - p1.y)*(p2.y - p1.y));
}
bool cmp(point p1, point p2) {
int temp = cross(list[0], p1, p2);
if (temp > 0) return true;
return temp == 0 && dis(list[0], p1) < dis(list[0], p2);
}
bool tcmp(const point &p1, const point &p2) {
if (p1.y == p2.y)return p1.x < p2.x;
return p1.y < p2.y;
}
void init(int n) {
for (int i = 0; i < n; i++)
scanf("%d%d", &list[i].x, &list[i].y);
/*sort(list, list + n, [](const point &p1,const point &p2) {
if (p1.y == p2.y)return p1.x < p2.x;
return p2.y < p2.y;
});*/
sort(list, list + n, tcmp);
sort(list + 1, list + n, cmp);
}
void graham(int n) {
if (n == 1) { top = 0; sta[0] = 0; }
if (n == 2) {
top = 1;
sta[0] = 0;
sta[1] = 1;
}
if (n > 2) {
for (int i = 0; i <= 1; i++)
sta[i] = i;
top = 1;
for (int i = 2; i < n; i++) {
while (top > 0 && cross(list[sta[top - 1]], list[sta[top]], list[i]) <= 0)
top--;
top++;
sta[top] = i;
}
}
}
int main() {
int n, l;
while (scanf("%d%d", &n, &l) != EOF) {
init(n);
graham(n);
double res = 0;
for (int i = 0; i < top; i++)
res += dis(list[sta[i]], list[sta[i + 1]]);
res += dis(list[sta[0]], list[sta[top]]);
res += 2 * PI*l;
printf("%d\n", (int)(res + 0.5));
}
return 0;
}
相关推荐
半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)
内容概要:本文档系统性地介绍了半桥LLC谐振变换器的开环与闭环仿真设计方法,基于Simulink平台构建完整的仿真模型,涵盖系统建模、关键参数设计、控制策略实现及动态性能验证全过程。重点阐述了LLC谐振变换器的工作原理、谐振腔参数(Lr、Cr、Lm)的优化设计方法、零电压开关(ZVS)与零电流开关(ZCS)等软开关技术的实现机制,并深入探讨电压/电流双闭环控制策略,特别是恒压恒流双竞争控制逻辑的切换机制与稳定性保障。资料配套提供完整的仿真模型、详细说明文档及参考文献,有助于全面掌握其在启停过程、负载突变等工况下的动态响应特性与系统鲁棒性调控方法。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作能力的高校研究生、科研机构研究人员,以及从事高频高效开关电源、新能源汽车车载充电机(OBC)、充电桩电源、数据中心供电等领域的工程技术人员。; 使用场景及目标:① 掌握LLC谐振变换器在实际工程中的精确建模与仿真分析流程;② 深入理解并独立实现从开环频率调制到闭环反馈控制的平滑切换逻辑;③ 应用于高效率DC-DC变换器、电动汽车充电系统、可再生能源并网电源等场景下的控制系统设计与性能优化; 阅读建议:建议结合所提供的仿真模型进行分步调试与参数扫描实验,重点关注控制器带宽设计、谐振元件参数匹配对效率的影响以及系统上电过程中的软启动策略设计,同时推荐对比学习全桥LLC、CLLC等衍生拓扑的相关资料,以建立完整的谐振变换器控制体系认知。
C++ 刷POJ等类似题目注意情况
1.注意边界值; 2.尽量用数组
SOP 配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)
内容概要:本文围绕基于SOP(Soft Open Point)的配电网故障重构方法展开研究,采用IEEE33节点标准配电系统作为仿真测试平台,利用Matlab进行代码实现与仿真验证。研究重点在于通过SOP这一柔性电力电子装置实现故障后网络拓扑的快速重构,提升供电恢复能力与系统可靠性。文中详细阐述了故障重构的数学建模过程,结合优化算法实现负荷转供与孤岛划分的协同决策,在保证辐射状运行约束的前提下,最大限度恢复失电负荷,并降低网络损耗。该方法充分体现了SOP在主动配电网中的灵活调控优势,为现代智能配电网的自愈控制提供了有效技术路径。; 适合人群:电气工程及相关专业的高校研究生、从事配电网自动化与智能电网研究的科研人员,以及具备一定Matlab编程基础和电力系统分析背景的研发技术人员。; 使用场景及目标:① 掌握基于SOP的配电网故障恢复机制与重构策略设计;② 学习如何在Matlab环境下构建IEEE33节点系统模型并实现故障重构算法;③ 深入理解含分布式电源与柔性装置的主动配电网优化运行方法; 阅读建议:建议结合电力系统分析基础知识,重点关注SOP的建模方式、故障重构的优化目标与约束条件设定,并动手实践Matlab代码以加深对算法流程和仿真结果的理解。
cf 1312 D 逆元模板
Your task is to calculate the number of arrays such that: each array contains n elements; each element is an integer from 1 to m; for each array, there is exactly one pair of equal elements; for each ...
Transformer论文解读
Transformer有多牛逼不用多说,时隔7年我们再来看看论文原文,看看这篇深刻改变世界的文章都说了什么。当然逐字逐句解读已经意义不大,我们只列考点。
【unity】Google 登录和Google支付接入unity
google 支付 google 登录
cf edu 89 d 求一个数的因子和与自己互质
题意: 输入n(1≤n≤5*105) ,在输入n个数,问你对于ai(2≤ai≤107) ,是否存在ai的两个因数d1>1 and d2>1,且gcd(d1+d2,ai)=1。有就输出d1,d2,没有就输出-1. input 10 2 3 4 5 6 7 8 9 10 24 output -1 -1 -1 -1 3 -1 -1 -1 2 2 -1 -1 -1 -1 2 -1 -1 -1 5 3 (输出数据的每一列表示一个ai的答案,比如第5列,表示a5–即6的答案) 思路: 对于每一个ai,先保存
如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)
本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。
poj 1091 (容斥原理)
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #includ...
手把手调试Android 14 ShellTransitions:用Log追踪ActiveTransition与Handler匹配过程
本文详细介绍了在Android 14中调试ShellTransitions机制的方法,重点通过Log追踪ActiveTransition与Handler的匹配过程。文章提供了关键日志点植入策略、Handler匹配机制解析及实战调试案例,帮助开发者解决窗口转场动画中的卡顿和错乱问题,提升系统动画性能。
IBM 3560M3 R5 坏盘更换记录
公司一台老旧 3650M3在日常巡查过程中发现硬盘报错
bzoj 2818 欧拉函数
第一种思路,就是对于某个数q,跟他互质的数p,kp和kq的最大公约数是k,那么这个数能组成的答案的数量就是phi[i]乘以某个质数,且乘积小于n 基于这种思路写下这个代码 #include <cstdio> #include <iostream> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue>
YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度
HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。
poj 3126 (素数筛)
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #includ...
Python爬虫实战:爬取国家气象局台风路径数据的完整教程
国家气象局(如中国气象局)一般会在官方网站公布台风的实时路径,包括台风编号、名称、时间点、经纬度、中心气压、最大风速等信息。这些数据以图形和表格的形式呈现,有时以JSON或CSV文件形式下载。爬取这类数据,有助于构建台风数据库、历史路径分析、趋势预测等应用。本文详细介绍了如何通过Python爬取国家气象局发布的台风路径数据,涵盖了数据采集、解析、存储和可视化全流程。通过实践,你可以构建自己的台风数据库,结合机器学习开展路径预测和风险评估等高级分析。后续可结合深度学习技术,实现台风轨迹预测;
HTML粉色爱心(完整代码)
HTML语言实现粉色爱心的完整代码。
poj 1061 (ext_gcd)
要用long long 要判断a是否小于零 要判断结果是否小于0 #include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <qu...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
cf 1312 c
Suppose you are performing the following algorithm. There is an array v1,v2,…,vn filled with zeroes at start. The following operation is applied to the array several times — at i-th step (0-indexed) y...
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
数论(好题)
给你一个数组a,求ans=(a1+a2)^ (a1+a3)^ …(a n-1+a n),(共(n+1)*n/2项),数组长度是10的5次方,ai是10的7次方的,求ans。 解析:一位一位的算。一堆0和1异或的结果,只和其中的1的个数有关,与0个个数无关。 #include <cstdio> #include <cstdlib> #include <cstring&g...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
poj 1284
若p为奇素数,则p有euler(p-1)个原根 int get_euler(int n) { int res = n, a = n; for (int i = 2; i*i <= a; i++) { if (a%i == 0) { res = res / i * (i - 1); while (a%i == 0)a = a / i; } } if (a > ...
poj 2084
递推公式 k(n)=(4n-2)/(n+1)*k(n-1) 通项公式 k(n)=c(2n,n)/(n+1) = 2n!/n!/(n-1) h(0) = 1; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { ...
poj 1930 (gcd)
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #inclu...
poj 3233 矩阵快速幂
构造一个左上角是A+A2+A3 …的矩阵,然后去算就可以了 #include <cstdio> #include <iostream> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #include <vector> #include
poj 1995
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #includ...
poj 3421
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #includ...
1294



被折叠的 条评论
为什么被折叠?



