《算法笔记》二分—木棒切割问题&求凸多边形外接圆最大半径
作者:互联网
木棒切割问题
大意:给N根木棒,通过切割至少得到K段长度相同的木棒,长度相同的木棒最长能有多长
思路:已知结论,长度相同的木棒长度越长,切割得到的K越小,可以二分法,即求最后一个满足“k<=K”的L,可转换为第一个满足“k>K”的位置,再减一
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n,K,k=0,length[10];
scanf("%d%d",&n,&K);
for(int i=0;i<n;i++)
{
scanf("%d",&length[i]);
}
sort(length,length+n);
int left=1,right=length[n-1],mid;
while(left<right)
{
k=0;
mid=(left+right)/2;
for(int i=0;i<n;i++)
{
k+=length[i]/mid;
}
if(k<K) right=mid;
else left=mid+1;
}
printf("%d",mid-1);
return 0;
}
二分法求凸多边形外接圆最大半径
大意:给定N条线段,按任意顺序首尾相连,组合成一个凸多边形,使得其外接圆半径最大,求最大半径
思路://明天再想:-D
标签:切割,木棒,凸多边形,外接圆,int,半径 来源: https://www.cnblogs.com/Hfolsvh/p/14371398.html