当前位置:网站首页>Game mathematical derivation AC code (high precision and low precision multiplication and division comparison) + 60 code (long long) + 20 point code (Full Permutation + deep search DFS)
Game mathematical derivation AC code (high precision and low precision multiplication and division comparison) + 60 code (long long) + 20 point code (Full Permutation + deep search DFS)
2020-11-08 07:14:00 【osc_56801rv0】
NOIP 2012 Improvement group The rematch The first day The second question is King's game game Mathematical derivation AC Code ( High precision Low precision ride except Compare )+60 Code (long long)+20 Code division ( Full Permutation + Deep search dfs)
For the general catalogue, please refer to :NOIP Improvement group The rematch test questions Catalog Xinao Calendar year
Online evaluation address :https://www.luogu.com.cn/problem/P1080
The mathematical derivation is as follows :
We analyze the two points behind the king
The queue might look like this :
| * | Left | Right |
|---|---|---|
| king: | a0 | b0 |
| p1 | a1 | b1 |
| p2 | a2 | b2 |
So we can calculate that ans1=max(a0/b1,a0*a1/b2)
The queue could be like this
| * | Left | Right |
|---|---|---|
| king: | a0 | b0 |
| p2 | a2 | b2 |
| p1 | a1 | b1 |
So we can calculate that ans2=max(a0/b2,a0*a2/b1)
consider ans1 The optimal , that ans1<ans2,
Please note that :
(ans1 Medium )a0/b1<(ans2 Medium )a0*a2/b1
(ans1 Medium )a0*a1/b2>(ans2 Medium )a0/b2
Make sure that ans1<ans2 It must be true , must (ans1 Medium )a0*a1/b2<(ans2 Medium )a0*a2/b1
namely a1/b2<a2/b1
namely a1*b1<a2*b2
namely , Press a*b Sort from small to large , It can be guaranteed that it is the optimal solution to the problem .
In terms of success rate , It's still highly recommended 60 Code division .
Provide a set of test data
Input :
5
9999 1
9999 1
9999 2
9999 3
9999 4
9999 5
Output :
19990001999800009999
1.AC Code ( High precision Low precision ride except Compare )
#include <bits/stdc++.h>
#define maxn 1010
#define BASE 10000
using namespace std;
int n,aa[maxn],an,bb[maxn],bn,cc[maxn],cn;
struct node{
int a,b,c;
}q[maxn];
int cmp(node a,node b){
return a.c<b.c;
}
void mul(int x){// High precision * Low precision
int i;
for(i=1;i<=an;i++)
aa[i]=aa[i]*x;
for(i=1;i<=an;i++){
aa[i+1]+=aa[i]/BASE;
aa[i]%=BASE;
}
//if(aa[an+1])an++; You can also write this sentence , But I don't think it's right
while(aa[an+1])an++,aa[an+1]+=aa[an]/BASE,aa[an]%=BASE;
}
void div(int x){// High precision / Low precision
int i,yu;
yu=0;
for(i=an;i>=1;i--){
bb[i]=(aa[i]+yu*BASE)/x;
yu=(aa[i]+yu*BASE)%x;
}
bn=an;
while(!bb[bn])bn--;// Remove the lead 0
}
int compare(){
if(bn>cn)return 1;//bb>cc
if(bn<cn)return -1;//bb<cc
for(int i=bn;i>=1;i--)//bb==cc
if(bb[i]>cc[i])return 1;//bb>cc
else if(bb[i]<cc[i])return -1;//bb<cc
return 0;//bb==cc
}
int main(){
int i,j;
scanf("%d",&n);
for(i=0;i<=n;i++)scanf("%d%d",&q[i].a,&q[i].b),q[i].c=q[i].a*q[i].b;
sort(q+1,q+1+n,cmp);
aa[1]=1,an=1;
cc[1]=q[0].a/q[1].b,cn=1;
for(i=1;i<=n;i++){
mul(q[i-1].a);
div(q[i].b);
if(compare()==1){
cn=bn;
for(j=bn;j>=1;j--)cc[j]=bb[j];
}
}
printf("%d",cc[cn]);
for(i=cn-1;i>=1;i--)printf("%04d",cc[i]);
return 0;
}
2.60 Code (long long)


#include <bits/stdc++.h>
#define LL long long
#define maxn 1100
using namespace std;
struct node{
LL a,b,c;
}q[maxn];
int cmp(node a,node b){
return a.c<b.c;
}
LL mx,a=1;
int main(){
int n,i;
scanf("%d",&n);
for(i=0;i<=n;i++){
scanf("%d%d",&q[i].a,&q[i].b);
q[i].c=q[i].a*q[i].b;
}
sort(q+1,q+1+n,cmp);
for(i=1;i<=n;i++)
a*=q[i-1].a,mx=max(mx,a/q[i].b);
printf("%lld\n",mx);
return 0;
}
3.20 Code division ( Full Permutation + Deep search dfs)


20 Code division ( Full Permutation + Deep search dfs) as follows :
#include <bits/stdc++.h>
using namespace std;
int a[15],b[15],c[15],vis[15],n,mn=2000000000;
void dfs(int step){
int i;
if(step==n+1){
int j,aa=1,mx=0;
for(j=1;j<=n;j++){
aa=aa*a[c[j-1]];
mx=max(mx,aa/b[c[j]]);
}
mn=min(mx,mn);
return;
}
for(i=1;i<=n;i++)
if(!vis[i]){
vis[i]=1;
c[step]=i;
dfs(step+1);
vis[i]=0;
}
}
int main(){
int i;
scanf("%d",&n);
for(i=0;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
dfs(1);
printf("%d\n",mn);
return 0;
}
版权声明
本文为[osc_56801rv0]所创,转载请带上原文链接,感谢
边栏推荐
- C/C++编程笔记:C语言相比其他编程语言,有什么不一样的优势?
- QT hybrid Python development technology: Python introduction, hybrid process and demo
- use Xunit.DependencyInjection Transformation test project
- 微信昵称emoji表情,特殊表情导致列表不显示,导出EXCEL报错等问题解决!
- Data transmission of asynchronous serial communication controlled by group bus communication
- golang 匿名结构体成员,具名结构体成员,继承,组合
- Introduction to ucgui
- Sentry installation
- What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?
- Hand tearing algorithm - handwritten singleton mode
猜你喜欢

微信昵称emoji表情,特殊表情导致列表不显示,导出EXCEL报错等问题解决!

VC6兼容性及打开文件崩溃问题解决

iOS上传App Store报错:this action cannot be completed -22421 解决方案
![A compilation bug brought by vs2015 Update1 update [existing solutions]](/img/3b/00bc81122d330c9d59909994e61027.jpg)
A compilation bug brought by vs2015 Update1 update [existing solutions]

2020-11-07:已知一个正整数数组,两个数相加等于N并且一定存在,如何找到两个数相乘最小的两个数?

Privacy violation and null dereference of fortify vulnerability

Cryptography - Shangsi Valley
![[original] about the abnormal situation of high version poi autosizecolumn method](/img/3b/00bc81122d330c9d59909994e61027.jpg)
[original] about the abnormal situation of high version poi autosizecolumn method

2020天翼智能生态博览会中国电信宣布5G SA正式规模商用

On the stock trading of leetcode
随机推荐
CPP (4) boost installation and basic use for Mac
On the concurrency of update operation
Adobe media encoder / me 2021 software installation package (with installation tutorial)
异常+abstract
到底选openstack还是vmware?
Problems of Android 9.0/p WebView multi process usage
1. In depth istio: how is sidecar auto injection realized?
Bili Bili common API
China Telecom announces 5g SA commercial scale in 2020
Writing method of field and field comparison condition in where condition in thinkphpp6
Android Basics - RadioButton (radio button)
IOS upload app store error: this action cannot be completed - 22421 solution
Summary of knowledge points of Jingtao project
C language I blog assignment 03
Web Security (4) -- XSS attack
解决RabbitMQ消息丢失与重复消费问题
Delphi10's rest.json And system.json Step on the pit
SQL Server 2008R2 18456错误解决方案
Data structure and sorting algorithm
双向LSTM在时间序列异常值检测的应用