当前位置: 首页 > news >正文

三分/01分数规划

三分

最小球覆盖 2018南京D
三分套三分套三分

constexpr int N=105;
struct node{int x,y,z;
}a[N];
int n;
double road(double x1,double y1,double z1,double x2,double y2,double z2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
}
double check(double x,double y,double z){double maxn=0;for (int i=1;i<=n;i++){maxn=std::max(maxn,road(x,y,z,a[i].x,a[i].y,a[i].z));}return maxn;
}
double check(double x,double y){double l=-100000,r=100000,ans=1e18;for (int i=1;i<=80;i++){double mid1=l+(r-l)/3,mid2=r-(r-l)/3;double res1=check(x,y,mid1),res2=check(x,y,mid2);if (res1<res2){r=mid2;}else{l=mid1;}ans=std::min(ans,std::min(res1,res2));}return ans;
}
double check(double x){double l=-100000,r=100000,ans=1e18;for (int i=1;i<=80;i++){double mid1=l+(r-l)/3,mid2=r-(r-l)/3;double res1=check(x,mid1),res2=check(x,mid2);if (res1<res2){r=mid2;}else{l=mid1;}ans=std::min(ans,std::min(res1,res2));}return ans;
}
void yrzr(){std::cin>>n;for (int i=1;i<=n;i++){std::cin>>a[i].x>>a[i].y>>a[i].z;}double l=-100000,r=100000,ans=1e18;for (int i=1;i<=80;i++){double mid1=l+(r-l)/3,mid2=r-(r-l)/3;// std::cout<<std::fixed<<std::setprecision(5)<<mid1<<" "<<mid2<<"\n";double res1=check(mid1),res2=check(mid2);if (res1<res2){r=mid2;}else{l=mid1;}ans=std::min(ans,std::min(res1,res2));}std::cout<<std::fixed<<std::setprecision(5)<<ans;
}

P2571 [SCOI2010] 传送带
感性理解一下,从 a b ab ab传送带到 c d cd cd传送带,每个传送带只有一个点出发/到达是最优的,所以单峰,满足三分性

int ax,ay,bx,by,cx,cy,dx,dy;
int p,q,r;
double road(double x1,double y1,double x2,double y2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double check(double x,double y){double lx=cx,ly=cy,rx=dx,ry=dy,ans=1e18;for (int i=1;i<=100;i++){double mid1x=(2*lx+rx)/3,mid1y=(2*ly+ry)/3;double mid2x=(lx+2*rx)/3,mid2y=(ly+2*ry)/3;double res1=road(dx,dy,mid1x,mid1y)/q+road(x,y,mid1x,mid1y)/r;double res2=road(dx,dy,mid2x,mid2y)/q+road(x,y,mid2x,mid2y)/r;if (res1>res2){lx=mid1x;ly=mid1y;}else{rx=mid2x;ry=mid2y;}ans=std::min(ans,res1);}return ans;
}
void yrzr(){std::cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy>>p>>q>>r;double lx=ax,ly=ay,rx=bx,ry=by,ans=1e18;for (int i=1;i<=100;i++){double mid1x=(2*lx+rx)/3,mid1y=(2*ly+ry)/3;double mid2x=(lx+2*rx)/3,mid2y=(ly+2*ry)/3;double res1=road(ax,ay,mid1x,mid1y)/p+check(mid1x,mid1y);double res2=road(ax,ay,mid2x,mid2y)/p+check(mid2x,mid2y);if (res1>res2){lx=mid1x;ly=mid1y;}else{rx=mid2x;ry=mid2y;}ans=std::min(ans,res1);}std::cout<<std::fixed<<std::setprecision(2)<<ans;
}

[SHOI2017]期末考试
从小到大排序,三分最后出成绩的时间,然后贪心,将晚出的学科进行操作
时间复杂度通过前缀和预处理可以做到 O ( n l o g n + l o g 2 n ) O(nlogn+log^2n) O(nlogn+log2n)

注意测试点C==1e16时会炸longlong,进行特判

constexpr int N=1e5+5;
int A,B,C,n,m;
int t[N],b[N],sum[N],tol[N];
int check(int dl){if (b[m]<=dl){return 0;}int pos=std::upper_bound(b+1,b+1+m,dl)-b;int sum1=dl*(pos-1)-tol[pos-1],sum2=(tol[m]-tol[pos-1])-(m-pos+1)*dl;if (B<=A){return sum2*B;}else{if (sum1>=sum2){return sum2*A;}else{return sum1*A+(sum2-sum1)*B;}}
}
void yrzr(){std::cin>>A>>B>>C>>n>>m;for (int i=1;i<=n;i++){std::cin>>t[i];}for (int i=1;i<=m;i++){std::cin>>b[i];}std::sort(t+1,t+1+n);for (int i=1;i<=n;i++){sum[i]=sum[i-1]+t[i];}std::sort(b+1,b+1+m);for (int i=1;i<=m;i++){tol[i]=tol[i-1]+b[i];}if (C==1e16){std::cout<<check(t[1]);return;}int ans=1e18;int l=0,r=100000,res1,res2;while (l<r){int mid1=(2*l+r)/3,mid2=(l+2*r)/3;int pos1=std::upper_bound(t+1,t+1+n,mid1)-t-1;int pos2=std::upper_bound(t+1,t+1+n,mid2)-t-1;res1=(mid1*pos1-sum[pos1])*C+check(mid1);res2=(mid2*pos2-sum[pos2])*C+check(mid2);if (res1>res2){l=mid1+1;}else{r=mid2-1;}ans=std::min(ans,std::min(res1,res2));// std::cout<<mid1<<" "<<res1<<" "<<mid2<<" "<<res2<<"\n";}std::cout<<ans;
}

分数规划

小咪买东西
板子

void yrzr(){int n,k;std::cin>>n>>k;std::vector<int> c(n+1),v(n+1);for (int i=1;i<=n;i++){std::cin>>c[i]>>v[i];}int l=0,r=1e9,ans=0;auto check=[&](int x){std::vector<int> temp;for (int i=1;i<=n;i++){temp.push_back(v[i]-c[i]*x);}std::sort(temp.begin(),temp.end(),[&](int i,int j){return i>j;});int sum=0;for (int i=0;i<k;i++){sum+=temp[i];}return (sum>=0?1:0);};while (l<=r){int mid=(l+r)>>1;if (check(mid)){l=mid+1;ans=mid;}else{r=mid-1;}}std::cout<<ans<<"\n";
}

gpa
转换一下,其实就是买的物品个数变成了一个范围 [ n − k , n ] [n-k,n] [nk,n]
c h e c k check check的时候,一旦出现一个满足范围且 s u m > = 0 sum>=0 sum>=0的时候就是合法的

void yrzr(){int n,k;std::cin>>n>>k;std::vector<int> s(n+1),c(n+1);for (int i=1;i<=n;i++){std::cin>>s[i];}for (int i=1;i<=n;i++){std::cin>>c[i];c[i]*=s[i];}double l=0,r=1e9,ans=0;auto check=[&](double x){std::vector<double> temp;for (int i=1;i<=n;i++){temp.push_back(c[i]-x*s[i]);}std::sort(temp.begin(),temp.end(),[&](int i,int j){return i>j;});double sum=0;for (int i=1;i<=n;i++){sum+=temp[i-1];if (sum>0&&n-i<=k){return 1;}}return 0;};for (int i=1;i<=60;i++){double mid=(l+r)/2;if (check(mid)){l=mid+1;ans=mid;}else{r=mid-1;}}std::cout<<std::fixed<<std::setprecision(8)<<ans;
}

P4377 [USACO18OPEN] Talent Show G
与之前不同的是,此题没有限制选的数量,而是限制分母的和,二分完后,转换为背包问题即可

void yrzr(){int n,W;std::cin>>n>>W;std::vector<int> w(n+1),t(n+1);for (int i=1;i<=n;i++){std::cin>>w[i]>>t[i];t[i]*=1000;}int l=0,r=1e9,ans=0;auto check=[&](int x){std::vector<int> c(n+1),v(n+1);for (int i=1;i<=n;i++){c[i]=t[i]-w[i]*x;v[i]=w[i];}std::vector<int> f(W+1,-1e18);f[0]=0;for (int i=1;i<=n;i++){for (int j=W;j>=0;j--){f[std::min(W,j+v[i])]=std::max(f[std::min(W,j+v[i])],f[j]+c[i]);}}return (f[W]>=0?1:0);};while (l<=r){int mid=(l+r)/2;if (check(mid)){l=mid+1;ans=mid;}else{r=mid-1;}}std::cout<<ans<<"\n";
}

P4322 [JSOI2016] 最佳团体
二分答案,然后分数规划模型,转换一下发现就是重新定义每个人的点权,然后跑一个树上背包,但是树上背包要满足:儿子选了父亲一定要选
,特殊预处理一下即可

相关文章:

三分/01分数规划

三分 最小球覆盖 2018南京D 三分套三分套三分 constexpr int N105; struct node{int x,y,z; }a[N]; int n; double road(double x1,double y1,double z1,double x2,double y2,double z2){return sqrt((x1-x2)*(x1-x2)(y1-y2)*(y1-y2)(z1-z2)*(z1-z2)); } double check(double…...

大批卖家产品被下架!Temu又有新动作?

大批卖家产品被下架&#xff01;Temu又有新动作&#xff1f; 近日&#xff0c;Temu正式上线韩国站&#xff0c;截止目前已上线27个国家地区。Temu海外市场发展迅猛&#xff0c;外界的声音也褒贬不一。这其中最有发言权的&#xff0c;应该就是Temu平台的卖家了&#xff01; …...

STM32 LL库 TIM3定时器多通道捕获输入采集

为什么不用HAL库&#xff0c;使用HAL库捕获输入一个通道还尚可&#xff0c;多通道捕获由于HAL的回调函数不符合我的要求&#xff0c;干脆直接切换到LL库。网上找了许多&#xff0c;代码处理写的不符合我的要求&#xff0c;这里记录一下我的调试过程。 TIM2输出1路PWM信号&#…...

如何为初创企业选择合适的 ERP 系统?

**ERP系统**是制造、分销、供应链、金融、会计、风险管理等多个行业必不可少的企业技术解决方案。不论垂直行业、企业规模或目标受众如何&#xff0c;将ERP作为企业管理战略的核心部分都非常重要。 对于渴望发展的小型企业和初创企业来说&#xff0c;更是如此。大型企业需要对…...

jssip contact的随机字符串的问题

let configuration {sockets: [socket],uri: sip:1001127.0.0.1,}; 如果这样注册freesswitch&#xff0c;那么fs注册信息中的Contact字段信息就是&#xff1a;sip:sdfsdfsdfsfcvdwvdwd.invalid;transportws;fs_natyes;fs_path... 正确的写法是&#xff1a; //URI是jssip内置…...

别再吐槽大学教材了,来看看这些网友强推的数学神作!

前言 关于大学数学教材的吐槽似乎从来没停止过。有人慨叹&#xff1a;数学教材晦涩难懂。错&#xff01;难懂&#xff0c;起码还可以读懂。数学教材你根本读不懂&#xff1b;也有人说&#xff1a;数学教材简直就是天书。 数学教材有好有坏&#xff0c;这话不假&#xff0c;但更…...

Elasticsearch-汇总

Elasticsearch-基础介绍 跳转 分布式全文搜索引擎&#xff1a;包含【实时搜索】和【分析引擎】 Elasticsearch-倒排索引 跳转 倒排索引 跳转 Elasticsearch-Term Dictionary和Term Index 跳转 lucene-基础介绍 跳转 Elasticsearch-联合索引 跳转 Elasticsearch-Roaring B…...

9.3 【MySQL】系统表空间

了解完了独立表空间的基本结构&#xff0c;系统表空间的结构也就好理解多了&#xff0c;系统表空间的结构和独立表空间基本类似&#xff0c;只不过由于整个MySQL进程只有一个系统表空间&#xff0c;在系统表空间中会额外记录一些有关整个系统信息的页面&#xff0c;所以会比独立…...

STM32CUBEIDE生成hex文件 Release版本的下载不启动

现象描述&#xff1a; 使用STM32CUBEIDE生成hex文件&#xff0c;使用脱机下载器或者J-Flash下载到单片机中&#xff08;STM32F407&#xff09;单片机不启动。 测试其他的程序是可以启动的。 修改办法&#xff1a; 把Release版本切换到debug版本&#xff0c;重新编写&#xf…...

2023年亚太杯数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

ceph集群移除物理节点

1. 概述 ceph分布式存储在生产或者实验环境&#xff0c;经常涉及到物理节点加入或者删除&#xff0c;本文仅对移除物理节点的相关步骤做了操作记录&#xff0c;以方便需要时查阅。 2. 移除物理节点 2.1 out掉相应osd 操作之前通过ceph -s确保整个集群状态是OK的&#xff0c;…...

(八)Spring源码解析:Spring MVC

一、Servlet及上下文的初始化 1.1> DispatcherServlet的初始化 对于Spring MVC来说&#xff0c;最核心的一个类就是DispatcherServlet&#xff0c;它负责请求的行为流转。那么在Servlet的初始化阶段&#xff0c;会调用init()方法进行初始化操作&#xff0c;在DispatcherSe…...

maven或者gradle打完jar,jekins启动提示找不到问题

1、记录下遇到的一个问题&#xff0c;maven或者gradle打完jar&#xff0c;然后jekins发布&#xff0c;启动提示找不到实体类&#xff0c;mapper&#xff0c;xml问题 2、首先排查jar包中这些文件是否存在 3、然后排查每层的包名或者文件名是否能对应上 我这次遇到的问题就是本地…...

浏览器缓存sessionStorage、localStorage、Cookie

一、sessionStorage 1、简介 sessionStorage用于在浏览器会话期间存储数据&#xff0c;数据仅在当前会话期间有效。 存储的数据在用户关闭浏览器标签页或窗口后会被清除。 2、方法 使用sessionStorage.setItem(key, value)方法将数据存储在sessionStorage中。使用sessionSt…...

易点易动固定资产管理系统场景应用一:集成ERP/财务系统

在企业的日常运营中&#xff0c;固定资产管理是一个重要而繁琐的任务。传统的手工管理方式往往效率低下且容易出错&#xff0c;给企业带来不必要的成本和风险。为了解决这一问题&#xff0c;易点易动固定资产管理系统应运而生。本文将重点介绍易点易动固定资产管理系统在集成ER…...

k8s部署elk8 直接通过logstash获取日志文件方式

配置文件 kibana [rootnode101 config]# cat kibana.yml # # ** THIS IS AN AUTO-GENERATED FILE ** ## Default Kibana configuration for docker target server.host: "0.0.0.0" server.shutdownTimeout: "5s" elasticsearch.hosts: [ "http:/…...

git 本地多个账号错乱问题解决

当我们在本地有多个git账号时&#xff0c;例如公司的gitlab有一个git账号&#xff0c;自己的开源项目有一个GitHub账号&#xff0c;我们可能会出现账号错乱的情况&#xff0c;例如提交到公司gitlab的代码是github账号 这种情况通常是由于您的git config配置文件中的用户信息未…...

wu-ui-uniapp 多平台快速开发的UI框架

WU-UI 多平台快速开发的UI框架(无论平台&#xff0c;一致体验) 官方群 wu-ui官方1群: 767943089 说明 wu-ui(如虎添翼) 是 全面兼容多端的uniapp生态框架&#xff0c;基于vue2、vue3和nvue开发。丰富组件库&#xff0c;便捷工具库&#xff0c;简单高效。无论平台&#x…...

Spring Boot Actuator:自定义端点

要在Spring Boot Actuator中实现自定义端点&#xff0c;可以按照以下步骤进行操作&#xff1a; 1.创建一个自定义端点类 该类需要使用Endpoint注解进行标记&#xff0c;并使用Component注解将其作为Spring Bean进行管理。 package com.example.highactuator.point;import lo…...

实时音视频方案汇总

若有好的方案欢迎留言讨论&#xff0c;非常感谢&#xff0c;汇总了一些&#xff0c;从市面上了解的一些低时延的端到端的方案&#xff0c;仅供参照&#xff0c;若有问题&#xff0c;也欢迎留言更正&#xff01; 方案 方案描述 时延 备注 1大华同轴高清电缆200米电缆&#xf…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...