当前位置:网站首页>Transform optimization problems into decision-making problems
Transform optimization problems into decision-making problems
2022-07-05 05:36:00 【Falling spring is only inadvertently】
Turn the optimization problem into a decision problem
Preface
It is a bit similar to the binary search problem , Translate the best answer into , Is there any equal to x Or a better answer .
Travel to Canada
The main idea of the topic
Dongjian decided to drive across Canada . Canadian 1 Highway is one of the longest highways in the world , It connects all major cities from east to West . Dongjian plans to start from the western city of Victoria , Go straight east along the highway , Go to 8030km Outside the eastern city of St. John .
This highway is famous for its numerous road signs ”. Because the highway passes n Major cities , And when we are about to reach a city , The number of road signs indicating the remaining distance is very large . Marked with a distance of i How far is the road sign of the city from before it arrives Mi Rice starts , With Gi Meter interval is set .
int n,k;
int l[5000],m[5000],g[5000];
// Decision making issues , arrive dist Can encounter k More than road signs
bool decision(int dist){
int ret = 0;
for(int i=0;i<n;++i){
// Can meet 1 More than i The road signs of a city
if(dist >= l[i]-m[i])
ret += (min(dist,l[i]) - (l[i]-m[i]))/g[i] + 1;
return ret>= k;
}
}
// Computation first k Location of road signs
int optimize(){
// Cyclic inequality : !decision(lo)&& decision(hi)
int lo = -1,hi = 80300001;
while(lo+1 < hi){
int mid = (lo + hi)/2;
if(decision(mid))
hi = mid ;
else lo = mid;
}
return hi;
}
Drop out course
The main idea of the topic
Bojun blindly chose more courses this semester , The result exceeded the credits . After getting the midterm grades , Because the grades did not meet the criteria for obtaining scholarships next semester , There is only one sigh left . Now? , He can only seize the opportunity to withdraw from the course starting next week .
The school will allocate scholarships according to the ranking after the mid-term and final exams . for example , A student chooses the first 1 There are courses c: Students attend classes . If this student's first i The mid-term ranking of courses is Ii,
that , The cumulative ranking of the student's mid-term exam will be defined as the following form .
∑ r i ∑ c i \frac{\sum_{}{}{}{r_i}}{\sum_{}{}{}{c_i}} ∑ci∑ri
If you drop out of the course , Then the withdrawn subjects will not be included in the cumulative ranking of the mid-term exam . School rules , Even if you drop out of the course , As long as the remaining courses exceed k individual , You can get scholarships according to the ranking . When Bo Jun withdraws from the course appropriately , Try to write a program to calculate the minimum cumulative ranking he can get .
Their thinking
Convert to decision(x) = Withdrawing courses appropriately can reduce the cumulative ranking to x The following
Turn into ∑ r i ∑ c i < = x \frac{\sum_{}{}{}{r_i}}{\sum_{}{}{}{c_i}} <= x ∑ci∑ri<=x
Finishing becomes
0 < = x ∑ c i − ∑ r i = ∑ ( x c i − r i ) 0<= x\sum_{}{}{}{c_i} - \sum_{}{}{}{r_i} = \sum_{}{}{}{(xc_i - r_i)} 0<=x∑ci−∑ri=∑(xci−ri)
int n,k;
int c[N],r[N];
// Decision making issues , Can the cumulative ranking be changed into average
bool decision(double average){
vector<double>v;
for(int i=0;i<n;++i)
v.push_back(average*c[i] - r[i]);
sort(v.begin(),v.end());
// Turn this question into ‘v in k Can the sum of the elements be greater than 0’ The problem of , Then use greedy methods to solve
double sum = 0;
for(int i = n-k;i<n;++i)
sum += v[i];
return sum >= 0;
}
// optimization problem , Calculate the minimum cumulative ranking that can be accumulated
double optimiza(){
// The cumulative ranking is [0,] The real number between
// Cyclic infinitive
double lo = -1e9 ,hi = 1;
for(int iter = 0;iter<100;iter++){
double mid = (lo + hi)/2;
// Can you reach the cumulative ranking mid
if(decision(mid))
hi = mid;
else
lo = mid;
}
return hi;
}
边栏推荐
- 每日一题-无重复字符的最长子串
- PC寄存器
- Sword finger offer 09 Implementing queues with two stacks
- [to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
- Acwing 4301. Truncated sequence
- 剑指 Offer 05. 替换空格
- Time complexity and space complexity
- Improvement of pointnet++
- Introduction to tools in TF-A
- In this indifferent world, light crying
猜你喜欢

智慧工地“水电能耗在线监测系统”

Yolov5 adds attention mechanism

Analysis of backdoor vulnerability in remote code execution penetration test / / phpstudy of national game title of national secondary vocational network security B module

Binary search basis

用STM32点个灯

A misunderstanding about the console window
![[jailhouse article] jailhouse hypervisor](/img/f4/4809b236067d3007fa5835bbfe5f48.png)
[jailhouse article] jailhouse hypervisor

【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors

SAP method of modifying system table data

YOLOv5-Shufflenetv2
随机推荐
Software test -- 0 sequence
Drawing dynamic 3D circle with pure C language
Kubedm series-00-overview
Haut OJ 1241: League activities of class XXX
Sword finger offer 06 Print linked list from beginning to end
Codeforces Round #732 (Div. 2) D. AquaMoon and Chess
Annotation and reflection
Introduction to convolutional neural network
卷积神经网络——卷积层
[to be continued] [UE4 notes] L1 create and configure items
[es practice] use the native realm security mode on es
游戏商城毕业设计
CCPC Weihai 2021m eight hundred and ten thousand nine hundred and seventy-five
[to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
读者写者模型
Pointnet++ learning
Educational codeforces round 109 (rated for Div. 2) C. robot collisions D. armchairs
ssh免密登录设置及使用脚本进行ssh登录并执行指令
剑指 Offer 58 - II. 左旋转字符串
Codeforces round 712 (Div. 2) d. 3-coloring (construction)