还是菜,两题dp一题模拟

/*
反正就两个方向,往左或者往右,如果都不行,那就是-1
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,y,d,t;
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d",&n,&x,&y,&d);
if(abs(y-x)%d==) {
printf("%d\n",abs(y-x)/d);
continue;
}
else {
if((y-)%d!= && (n-y)%d!=){
puts("-1");
continue;
}
int r=-,l=-;
if((n-y)%d==){
if((n-x)%d==) r=(n-x)/d;
else r=(n-x)/d+;
r+=(n-y)/d;
} if((y-)%d==){
if((x-)%d==) l=(x-)/d;
else l=(x-)/d+;
l+=(y-)/d;
} if(l==-) printf("%d\n",r);
else if(r==-) printf("%d\n",l);
else printf("%d\n",min(l,r));
}
} }
/*
给定一串字符,只有两个字母G,S,允许交换一次任意两个字母,问交换后最长连续的G是多长
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
int n,a[maxn];
int L[maxn],R[maxn],tot=;
int main(){ char s[maxn];
scanf("%d%s",&n,s+);
for(int i=;i<=n;i++){
if(s[i]=='G'){
tot++;
a[i]=a[i-]+;
}
else a[i]=a[i-];
}
for(int i=;i<=n;i++)
if(s[i]=='G') L[i]=L[i-]+;
else L[i]=;
for(int i=n;i>=;i--)
if(s[i]=='G') R[i]=R[i+]+;
else R[i]=; int ans=;
for(int i=;i<=n;i++){//要么是包括该点的左连续,要么是该点之前的左连续+该点之外的右连续+1
ans=max(ans,L[i]);
ans=max(ans,L[i-]+R[i+]+);
}
printf("%d\n",min(ans,tot));
}
/*
一次排序后,sum[i]表示每种专业选取i个人的最大值
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define ll long long
ll sum[maxn];
vector<int>a[maxn];
vector<ll>::iterator it;
int tot[maxn];
int cmp(int a,int b){
return a>b;
}//降序排列 int main(){
int n,m,id,val,mx=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d%d",&id,&val);
a[id].push_back(val);
tot[id]++;
}
for(int i=;i<=m;i++)
sort(a[i].begin(),a[i].end(),cmp); for(int i=;i<=m;i++){
ll tmp=;
for(int j=;j<a[i].size();j++){
tmp+=a[i][j];
if(tmp>)//总和为负的不能加
sum[j]+=tmp;
}
}
ll ans=;
for(int i=;i<n;i++)
ans=max(ans,sum[i]);
printf("%lld\n",ans); return ;
}

cf 1082abc的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  2. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  3. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  4. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  5. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  6. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  7. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  8. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  9. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

随机推荐

  1. bash变量详解

    bash变量详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家都知道Shell是一门脚本语言,脚本语言的最好的优点就是我们写的代码不需要编辑就可以直接运行,当然你也可以把它归 ...

  2. mysql -- 动态获取结果集(重点)

    注意:语句传值的时候必须是带有@符号的参数,不能是自己的局部变量,一个@叫用户变量,两个@叫做全局变量.用户变量:当前用户的‘’全局变量‘’,用户状态存在时就存在,用户退出时消失. 初始版 delim ...

  3. javascript 利用冒泡机制显示与隐藏模态框

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. C#设计模式(15)——迭代器模式

    1.迭代器模式介绍 迭代器模式主要用于遍历聚合对象,将聚合对象的遍历行为分离出来,抽象为一个迭代器来负责.迭代器模式用的十分普遍,C#/JAVA等高级语言都对迭代器进行了封装用于遍历数组,集合,列表等 ...

  5. js 定义像java一样的map方便取值【转】

    js 定义像java一样的map方便取值.  百度有位大神说"js对象本身就是一种Map结构",这真是一段让人欢天喜地的代码. <script> //定义一个全局map ...

  6. Codeforces 264 B. Good Sequences

    B. Good Sequences time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  7. 为什么选择图形数据库,为什么选择Neo4j?

    最近在抓取一些社交网站的数据,抓下来的数据用MySql存储.问我为什么用MySql,那自然是入门简单,并且我当时只熟悉MySql.可是,随着数据量越来越大,有一个问题始终困扰着我,那就是社交关系的存储 ...

  8. FASTREPORT COM/ActiveX报表如何保存到C++项目中?

    可以的. VC++ : ... IStream * pStream;CreateStreamOnHGlobal(NULL, true, &pStream);pStream->AddRef ...

  9. golang error信息转字符串 x := fmt.Sprintf("%s", err)

    _, _, ch, err := m.ZkConn.ChildrenW(node) if err != nil { x := fmt.Sprintf("%s", err) if s ...

  10. linux 链接理解

    1.软链接 只包含另外软链接的基本信息, 生成与源文件不同的节点号, 可以链接目录.不同网络的文件 2.硬链接只能链接文件,不会生成节点号,说白了就是指针,指向同个文件,所以链接的节点号与源节点号一致