链接:http://codeforces.com/contest/1082

A. Vasya and Book

题意:

n,x,y,d

一本电子书有n页,每一次翻动只能往前或者往后翻d页。求x->y页最少需要多少步。只能在(1~n)之间翻。具体细节看题目吧。博客仅作记录

int t,n,x,y,d;
int calc(int x,int y)
{
return abs(x-y)/d;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&n,&x,&y,&d);
int res = abs(x-y);
if(res%d==0)
{
cout<<res/d<<endl;continue;
}
int ans = inf;
if((y-1)%d==0)
{
ans = min(ans,(int)ceil((x-1.)/d)+(y-1)/d);
}
if((n-y)%d==0)
{
ans = min(ans,(int)ceil((double)(n-x)/d)+(n-y)/d);
}
if(ans == inf)
ans = -1;
cout<<ans<<endl;
}
return 0;
}

B. Vova and Trophies

渣渣的代码:

char s[200010];
int d[200010];
int n;
int main()
{
scanf("%d",&n);
scanf("%s",s+1);
int num = 0;
for(int i=1;i<=n;i++)
if(s[i]=='G')
num++;
int ans = 0;
for(int i=1;i<=n;i++)
{
if(s[i]!='G')
{
d[i] = 0;
}
else
{
d[i] = 1;
if(s[i-1] == 'G')
d[i] = d[i-1]+1;
}
}
for(int i=1;i<=n;i++)
{
ans = max(ans,d[i]);
if(s[i-d[i]]=='S'&&d[i]<num)
{
if(s[i-d[i]-1]=='G')
{
if(d[i]+d[i-d[i]-1]<num)
ans = max(ans,d[i]+1+d[i-d[i]-1]);
else
ans = max(ans,d[i]+d[i-d[i]-1]);
}
ans = max(ans,d[i]+1);
}
}
printf("%d\n",ans);
return 0;
}

大神的代码

#include <bits/stdc++.h>
using namespace std;
int res,pre,cnt,g;
int main()
{
int n;
cin>>n;
while(n--)
{
char s;
cin>>s;
if(s=='G')cnt++,g++;
else pre = cnt,cnt = 0;
res = max(res,cnt+pre+1);
}
cout<<min(g,res);
return 0;
}

C. Multi-Subject Competition

vector<int> s[100010];
int n,m; bool cmp(int a,int b)
{
return a>b;
}
bool cmp2(vector<int>a,vector<int> b)
{
return a.size()>b.size();
}
int main()
{
cin>>n>>m;
int t,r;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&t,&r);
s[t].push_back(r);
}
int mi = 0;
for(int i=1;i<=m;i++)
{
sort(s[i].begin(),s[i].end(),cmp);
for(int j=1;j<s[i].size();j++)
s[i][j] += s[i][j-1];
mi = max(mi,(int)s[i].size());
}
sort(s+1,s+m+1,cmp2);
int ans = 0;
for(int i=0;i<mi;i++)
{
int sum = 0;
for(int j=1;j<=m;j++)
{
if(i>=s[j].size())break;
sum = max(sum,sum+s[j][i]);
//printf("%d %d\n",j,s[j][i]);
}
//cout<<sum<<endl;
ans = max(ans,sum);
}
cout<<ans<<endl;
return 0;
}

大神的代码

#include<bits/stdc++.h>
using namespace std;
long long n,m,s,r,k,c,mx,a[200000],l;
pair<long long,long long> p[200000];
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>s>>r;
p[i]={s,-r};
}
sort(p,p+n);
for(int i=0;i<n;i++)
{
if(p[i].first!=l)
{
k=0; c=0; l=p[i].first;
}
c-=p[i].second;
k++;
if(c>0)
a[k]+=c;
mx=max(mx,a[k]);
}
cout<<mx;
return 0;
}

最新文章

  1. CSS书写规范、命名规范、网易CSS框架NEC
  2. Linux学习笔记(2)-开机
  3. python小知识点
  4. C++设计模式-Singleton
  5. 带Left Join的SQL语句的执行顺序
  6. POJ C++程序设计 编程题#2 魔兽世界之二:装备
  7. php中禁止非法调用和硬路径引入文件的方法
  8. Streams Studio配置Build options
  9. Linq实现对XML的简单增删查改
  10. BST 解析 (一)
  11. HashSet,LinkedHashSet,TreeSet的区别
  12. 学习 Spring (五) Aware 接口
  13. springMVC4(7)模型视图方法源代码综合分析
  14. MongoDB 系列文章
  15. MySQL 如何创建索引?怎么优化?
  16. Cassandra标准列和超级列
  17. STL基础--算法(修改数据的算法)
  18. JavaScript和HTML DOM的区别与联系
  19. 初学Jmeter添加Http请求,执行接口测试
  20. struts2的DevMode(开发模式)模式

热门文章

  1. bzoj4563 HAOI2016放旗子
  2. 一篇文章带你搞懂 SpringBoot与Swagger整合
  3. iOS开发 - RunLoop理解
  4. 通过java调用Http接口上传图片到服务器
  5. Machine Learning Codeforces - 940F(带修莫队) &amp;&amp; 洛谷P4074 [WC2013]糖果公园
  6. Bear and Tower of Cubes Codeforces - 680D
  7. base64 正则表达式 ,判断图片是base64还是图片链接
  8. QQ免费企业邮箱申请配置
  9. JavaScript 获取浏览器版本
  10. ES-什么是elasticsearch