Educational Codeforces Round 60 (Rated for Div. 2)(ABC)
时间:2019-08-26
本文章向大家介绍Educational Codeforces Round 60 (Rated for Div. 2)(ABC),主要包括Educational Codeforces Round 60 (Rated for Div. 2)(ABC)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
A. Best Subsegment
题意:给你一组数字,让你找到最长且平均数最大且没有小数的长度
解:平均数最大,直接找最大值,然后找最大值的长度(注意处理最后一个)
#include <bits/stdc++.h> using namespace std; const int maxn=1e5+10; typedef long long ll; int a[maxn]; int main(){ int n; cin>>n; int maxx=-1; for(int i=1;i<=n;i++){ cin>>a[i]; maxx=max(maxx,a[i]); } int ans=1; int cnt=0; for(int i=1;i<=n;i++){ if(a[i]==maxx&&a[i+1]==maxx&&i!=n){ cnt++; } else{ if(a[i]==a[i-1])cnt++; ans=max(cnt,ans); cnt=0; } //cout<<cnt<<endl; } cout<<ans<<endl; return 0; }
B. Emotes
题意:n个数,让你找出m个数,使得和最大,每个数可以重复选择,最多选择k次;
解:排序,选k个最大+1个次大搭配;
#include <bits/stdc++.h> using namespace std; const int maxn=2e5+10; typedef long long ll; ll a[maxn]; bool cmp(ll x,ll y){ return x>y; } int main(){ int n; ll k,m; cin>>n>>k>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+1+n,cmp); if(m>=k){ cout<<k*a[1]<<endl; } else if(k%(m+1)==0){ cout<<(a[1]*m+a[2])*(k/(m+1))<<endl; } else { //cout<<(k/(m+1))<<endl; //cout<<(k%(m+1))<<endl; cout<<(a[1]*m+a[2])*(k/(m+1))+a[1]*(k%(m+1))<<endl; } return 0; } /* 6 9 6 6 6 6 6 6 6 6 6 9 6 6 6 6 6 6 */
C. Magic Ship
题意:航海,给你起点和终点,每天的风向,航行的轨迹就是风向+你要行驶的方向,你也可以选择不动(只跟着风),求最少到达终点的天数;
解:刚看一头雾水,后来看一下大佬的巧妙做法~
二分答案,直接找第x天风能让船到的地方,然后再判断一下x天用自己的方向能否到达终点;
风的走向用前缀和 来存一下。1e9还不行,要分1e18~
#include <bits/stdc++.h> using namespace std; const int maxn=1e5+10; typedef long long ll; ll sx,sy; ll gx,gy; ll n; ll dx[maxn],dy[maxn]; char s[maxn]; bool check(ll mid){ ll x=sx+mid/n*dx[n]+dx[mid%n]; ll y=sy+mid/n*dy[n]+dy[mid%n]; if(abs(x-gx)+abs(y-gy)<=mid)return true; return false; } int main(){ cin>>sx>>sy>>gx>>gy; cin>>n; cin>>s+1; dx[0]=0,dy[0]=0; for(int i=1;i<=n;i++){ dx[i]=dx[i-1]; dy[i]=dy[i-1]; if(s[i]=='U')dy[i]++; else if(s[i]=='D')dy[i]--; else if(s[i]=='L')dx[i]--; else if(s[i]=='R')dx[i]++; } ll l=0,r=1e18; ll mid; ll ans=1LL*(1e18+10); while(l<=r){ mid=(l+r)>>1; if(check(mid)){ r=mid-1LL; ans=mid; } else l=mid+1LL; } if(ans==1e18+10)cout<<"-1"<<endl; else cout<<ans<<endl; return 0; }
原文地址:https://www.cnblogs.com/lin1874/p/11410981.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 5.03-requests_ssl
- 5.04-requests_cookies
- 通过 Node.js 小示例学习浏览器缓存策略
- [未解决]报错: execjs._exceptions.ProgramError: TypeError: Cannot read property 'extend' of undefined
- 5.05-requests_cookies2
- 5.06-re
- Python3爬虫 利用百度地图api得到城市经纬度
- [未解决]报错: pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in y
- 6.01-re-split_chinese
- Mac上安装tesseract-OCR
- 6.02-news_re
- 6.03-news_xpath2
- 修改mysql密码
- 6.04-news_xpath3
- 6.05-btc