2016.7.21 多校赛 1009 (水题)
来源:互联网 发布:手机出钱魔术软件 编辑:程序博客网 时间:2024/05/21 06:46
题意:
一个非增数列,数字范围[0,100],已知部分数字,求前两个数/总和的最大值
题解:
先记录已知数字,特判第一第二个,其他未知位置上,未知数字用后面最靠近它的已知数字赋值,后面没有已知数字,那么就让他是0
注意:
输出使用到__gcd()库函数,求最大公约数,在头文件#include<algorithm>
中
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<queue>#define pr(x) cout<<#x<<" "<<x;#define pl(x) cout<<#x<<" "<<x<<endl;#include<math.h>#include<algorithm>using namespace std;int main(){ int n; cin>>n; while(n--){ int length,know; cin>>length>>know; int index; int indexnum; int s[length+5]; memset(s,0,sizeof(s)); if(know!=0){ for(int i=1;i<=know;i++){ cin>>index>>indexnum; s[index] = indexnum; } } if(length==2){cout<<1<<'/'<<1<<endl;continue;} for(int i=1;i<=length;){ if(i==1&&s[i]==0){s[i]=100;i++;continue;} if(i==1&&s[i]!=0){i++;} if(i==2&&s[i]==0){s[i]=s[1];i++;continue;} if(i==2&&s[i]!=0){i++;} if(i>2){ if(s[i]!=0){i++;} else{ for(int j = i+1;j<=length;){ if(s[j]==0){j++;} else{ s[i]=s[j];break; } } i++; } } } int sum=0; for(int i=0;i<=length;i++){ sum+=s[i]; } int p = __gcd(sum,s[1]+s[2]); cout<<(s[1]+s[2])/p<<'/'<<sum/p<<endl; }}
0 0
- 2016.7.21 多校赛 1009 (水题)
- 2016.7.21 多校赛 1001(水题)
- 2016.7.21
- hdu 1009 FatMouse' Trade (水题,贪心)
- 1009 贪心算法 (简单分背包问题) 水题
- 2016多校赛 1003(博弈)
- leetcode题解日练--2016.7.21
- 2016.7.21纪中比赛总结
- 2016多校赛 Teacher Bo(曼哈顿距离)
- CSU---2017多校赛(13)---F Election
- 河南多校赛(4)GJJ来签到
- HDU1491 Octorber 21st【水题】
- HDU 1009(贪心)
- (51nod)1009
- PAT(乙级)1009
- 1009(树状数组)
- hdu 4704--sum(多校赛第十场)快速幂
- ECNA 2014_湖南多校赛2015.05.17 (待补)
- Hibernate中HQL函数汇总及其说明
- 一个关于const的初始化规则
- 使用Robolectric对Android应用进行单元测试
- 博乐招募开始啦
- Radiomics-从医学图像中获取更多信息
- 2016.7.21 多校赛 1009 (水题)
- JS循环遍历JSON数组
- Java之接口与工厂详解一(附源码)
- [libevent]epoll_add()
- JAVA用画板JFrame画布Panel画笔Graphics画一个星星,显示拖动的痕迹-3
- Android Dialog 的一些特性
- 线程与信号
- Mysql Create命令小结
- 阿里云日志服务日志写入华东2配置