比赛6 总结
来源:互联网 发布:手机淘宝怎么搜二手的 编辑:程序博客网 时间:2024/06/05 23:07
- T1
- 题面
- 题意
- 代码
- 方法
- T2
- 题面
- 题意
- 代码
- T3
- 题面
- 题意
- 超时代码
- 方法
- 优先队列
- 正确代码
- T4
- 题面
- 题意
- 代码
T1
题面
题意
输入n,输出两和为n的互质数且较小数最大
代码
#include<bits/stdc++.h>using namespace std;int main(){ int n,i; cin>>n; for(i=n/2;i>=1;i--) { if(__gcd(i,n-i)==1) { cout<<i<<" "<<n-i; return 0; } }}
方法
暴力枚举
T2
题面
题意
输入m,k.即m中有k个数为1,其余为0,分别输出最多和最少有多少个0的旁边有1.
代码
#include<bits/stdc++.h>using namespace std;int main(){ int n,k,i; cin>>n>>k; if(k==n||k==0) { cout<<0<<" "<<0; return 0; } if(k<=n/3) { cout<<1<<" "<<k*2;//一个1最多让旁边两个0满足条件 return 0; } cout<<1<<" "<<n-k; return 0;}
T3
题面
题意
有N个航班今天必须离开,其中第i个航班在一天中的第i分钟离开。
由于技术问题,没有航班能够在第一个k分钟内起飞,所以现在必须建立新的起飞时间表。
所有的航班离开时间必须不同,没有航班可以提前起飞。
已知各个航班每延迟一分钟所需成本。请制定新的时间表,输出机场的最低总成本。
超时代码
#include<bits/stdc++.h>#define N 300001#define M 10000000#define ll long longusing namespace std;ll n,t,a,an[N],c[N],xuhao[N],jiage[N];int main(){ ll i,j,ans=0; cin>>n>>t; for(i=1;i<=n;i++) { cin>>a; c[i]=a*M+i; } sort(c+1,c+n+1); for(i=1;i<=n;i++) { xuhao[i]=c[i]%M; jiage[i]=c[i]/M; } for(i=1;i<=t;i++) { an[xuhao[i]]=n+t-i+1; ans+=jiage[i]*(an[xuhao[i]]-xuhao[i]); } for(i=1;i<=n-t;i++) { for(j=n;j>t;j--) { if(xuhao[j]<=t+i) { break; } } an[xuhao[j]]=t+i; ans+=jiage[j]*(t+i-xuhao[j]); xuhao[j]=M*2; } cout<<ans<<endl; for(i=1;i<=n;i++) { cout<<an[i]<<" "; }}
方法
优先队列来做
用其他方法必然超时
其中pair<>表示一对数,<>内对一对数定义
优先队列
原理为堆
.push(x)x入队
.pop()去掉队首
.top()表示队首
.empty()判断是否为空,true表示空
正确代码
#include<bits/stdc++.h>#define N 300000#define M 10000000#define ll long longusing namespace std;priority_queue<pair<ll,ll> > A;pair<ll,ll>B;ll t[N+5],q[N+5],n,k;int main(){ ll i; ll ans=0; cin>>n>>k; for(i=1;i<=n;i++) { cin>>q[i]; } for(i=1;i<=n+k;i++) { if(i<=n) { A.push(pair<ll,ll>(q[i],i));//输入价格和序号 } if(i>k) { B=A.top(); t[B.second]=i;//B.second表示这一对数的第二个 ans+=(i-B.second)*B.first; A.pop(); } } cout<<ans<<endl; for(i=1;i<=n;i++) { cout<<t[i]<<" "; }}
T4
题面
题意
代码
阅读全文
1 0
- 比赛6 总结
- 本次比赛总结(2017.10.6比赛)
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 纪中2016.10.6比赛不明总结
- 比赛总结+近期总结
- 比赛总结+近期总结
- 8.8号比赛总结
- 总结小车比赛
- 蓝桥杯比赛总结
- 华中赛区比赛总结
- DIV3I比赛总结
- SRM 562 比赛总结
- SRM 563 比赛总结
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- Eclipse安装反编译插件JD-eclipse
- Cordova+Angularjs+Ionic混合开发入门篇(五)—— 插件的发布
- Webkit for Android 深入剖析
- 点击事件透传机制
- 比赛6 总结
- 贪婪的你
- LeetCode No.224 Basic Calculator 题解
- vim之快速查找功能
- jsp include 的行为
- Spring Cloud Config (2)
- Struts 框架详解
- 解决windows2012server中80端口被占用
- Protobuffer和json深度对比