题解 P1378 【油滴扩展】
题面
在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这N个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合)
注:圆的面积公式V=pi*r*r
,其中r为圆的半径。
题意
再规定的矩形内可以滴几个油滴,油滴滴的顺序不做要求,但是油滴滴的位置有要求。另外油滴滴在矩形内会一直扩展,直至碰着另一个油滴,或者撞到边界。
求矩形盒子内滴完油滴剩余的最小空间。
题解
我的思路很不好,为防误导,直接讲这题跑到\(0ms\)大神的思路和代码。
代码
#include<stdio.h>
#include<math.h>
#define PI 3.1415926int n,vis[7];
double A[7][2],x,y,x2,y2,R[7],max,dis[7][7];double abss(double a){return a>0.0?a:-a;}void dfs(int step,double s)
{//准备放置第step个油滴,放置前面积为sint k,i;double r=0;//准备放置的油滴的扩散半径 if(step==n+1)//放完 max=s>max?s:max;elsefor(k=1;k<=n;k++) if(!vis[k]){//矩形和已放置的油滴约束了r的大小 r=abss(y2-A[k][1]);if(r>abss(x2-A[k][0])) r=abss(x2-A[k][0]);if(r>abss(y-A[k][1])) r=abss(y-A[k][1]);if(r>abss(x-A[k][0])) r=abss(x-A[k][0]);for(i=1;i<=n;i++) if(vis[i])if(r>dis[k][i]-R[i]) r=dis[k][i]-R[i];r=r<0?0:r;//注意r不能为负 vis[k]=1;R[k]=r;dfs(step+1,s+PI*r*r);vis[k]=0;R[k]=0.0;}
}int main(void)
{int i,j;scanf("%d%lf%lf%lf%lf",&n,&x,&y,&x2,&y2);for(i=1;i<=n;i++) scanf("%lf%lf",&A[i][0],&A[i][1]); //预处理出油滴间距dis for(i=1;i<=n;i++) for(j=1;j<i;j++) if(i!=j)dis[i][j]=dis[j][i]=sqrt((A[i][0]-A[j][0])*(A[i][0]-A[j][0])+(A[i][1]-A[j][1])*(A[i][1]-A[j][1]));dfs(1,0.0);double S=abss(x-x2)*abss(y-y2);//矩形面积 printf("%.0lf",S-max);return 0;
}
转载于:https://www.cnblogs.com/Chicago/p/9920731.html
题解 P1378 【油滴扩展】相关推荐
- 【洛谷P1378】油滴扩展
题目 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完毕才能放置下一个油滴.那么 ...
- omwin密立根油滴实验数据处理程序_大物实验报告更新啦~
点击上方蓝色字体关注 工学小口袋 "仅供参考,禁止抄袭" 大物实验报告 正式上线啦!!! ◆ ◆ ◆ ◆ ◆ 还在为数据处理发愁吗~ 还在为写不出思考T悲伤吗~ 或者不 ...
- omwin密立根油滴实验数据处理程序_哈工程最新大物实验报告29——磁场的测量...
哈工程大物实验包含以下内容: 电位差计实验 分光计实验 光纤通信实验 测量透明薄片的折射率 自组电桥测电阻实验 光纤传感器实验 弗兰克-赫兹实验 太阳能电池的特性测量实验 光的偏振实验 液体变温粘滞系 ...
- 密立根油滴实验数据处理,油滴电荷量计算,简单复制即可用
密立根油滴实验计算代码 密立根油滴实验动态法计算公式和预设参数值 计算代码(python实现): 代码测试: 密立根油滴实验动态法计算公式和预设参数值 密立根油滴实验是一个著名的实验,其中有用非平衡法 ...
- 密立根测油滴实验c语言测试,密立根油滴实验
一.实验目的 1.了解密立根油滴仪的结构,油滴实验测定电子电荷的设计思想和方法. 2.了解CCD图像传感器的原理和电视显微测量方法. 3.通过对带电油滴在重力场和静电场中运动的测量,来测量基本电荷 的 ...
- 【大学物理】密立根油滴实验数据计算代码
大学本科在实验室收集完密立根油滴实验后懒得用计算器挨个算结果,写了个计算代码偷个懒(Doge) package xxx;import java.util.Scanner;public class xx ...
- 科大奥锐密立根油滴实验数据_(最新)大学物理实验报告系列之密立根油滴实验...
[实验名称] 密立根油滴实验 [ 实验目的 ] 1 .了解密立根油滴实验仪的结构以及利用油滴测定电子电荷的设计思想和方法. 2 .通过对带电油滴在重力场和静电场中运动的测量,验证电荷的不连续性,并测定 ...
- 密立根油滴实验科大奥瑞计算代码
静态法: #include <iostream> #include <cmath> using namespace std; int main(){ double q, ...
- 密立根油滴实验动态法计算(c语言)
北理工物理实验,三个油滴,每个油滴测五次,输出是科学计数法 比较粗糙,不过能用 #include <stdio.h> #include <math.h> #define rou ...
- 虚拟仿真实验平台 密立根油滴实验(附计算代码)
实验简介: 杰出的美国物理学家密立根在1909年至1917年所做的测量微小油滴所带的电荷的工作,即油滴实验,是物理学史上具有最重要意义的实验.Millikan在这一实验工作中花费了近10年的心血,取得 ...
最新文章
- mac安装mysql遇到的坑
- c语言编译不了什么情况,c语言编译没错但是无法运行
- 来,一起“八卦”一下数据湖
- 使用kubeadm安装kubernetes1.12.2版本脚本
- Azure Synapse Analytics简介第3部分:数据科学和商业智能
- shell 循环控制语句
- redis数据结构小结
- SQLite集成与用法
- 《音乐达人秀:Adobe Audition实战200例》——实例5 将电视音乐节目伴音转录到电脑里...
- MySQL技术内幕 - 第一章 MySQL体系结构和存储引擎
- Python Tkinter 音乐播放器 Demo
- android webview 跳转到浏览器,Android WebView或手机浏览器打开连接问题解决办法总结...
- mysql 中逆向表模型_PowerDesigner 逆向生成数据库物理模型,以 MySQL 为例
- Word 通过尾注插入参考文献
- 数据库增删改查的基本操作和SpringBoot创建
- 简单明了的告诉你什么是CPUID
- 中国碳酸钾市场趋势报告、技术动态创新及市场预测
- 计算机设计大赛作品抄袭会怎么样,如何界定借鉴和抄袭?看这7位设计大咖怎么说!...
- 传递函数化为状态空间表达式
- binlog回滚mysql误操作数据
热门文章
- 并发编程学习之阻塞队列BlockingQueue和LinkedBlockingQueue
- spring事务源码执行过程分析
- 令人疑惑的defaultValueAttribute
- android获取Mac地址和IP地址
- Python 创建本地服务器环境生成二维码
- Gentoo Portage树服务器(SYNC服务器)的搭建[转]
- Maven安装配置与本地仓库
- 【笔记】如何把GBK的文本格式转换为UTF-8格式
- oracle alter和 insert,Oracle 笔记一 select insert update delete transaction create alter
- ListView学习思维导图