Link:

Codeforces #211 传送门

一套非常简单的题目,但很多细节都是错了一次才能发现啊……

还是不能养成OJ依赖症,交之前先多想想corner case!!!

A:

模拟,要特判0啊

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
int n;
void solve(int x)
{
if(x<) printf("O-|");
else printf("-O|");
if(x>=) x-=;
for(int i=;i<=x;i++) printf("O");
printf("-");
for(int i=;i<=-x;i++) printf("O");
puts("");
} int main()
{
scanf("%d",&n);
if(!n) solve();//特判0!
while(n) solve(n%),n/=;
return ;
}

Problem A

B:

模拟,范围是$1.5*1e5$!!!仔细读题啊

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
int n,k,cur,dat[];P res;
//范围是1.5*1e5!
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++) scanf("%d",&dat[i]);
for(int i=;i<=k;i++) cur+=dat[i];
res.X=;res.Y=cur;
for(int i=;i<=n-k;i++)
{
cur-=dat[i];cur+=dat[i+k];
if(res.Y>cur) res.Y=cur,res.X=i+;
}
printf("%d",res.X);
return ;
}

Problem B

C:

string.erase和vector.erase一样,尽量不要用

期望复杂度是$O(n)$级别的

此题为了支持删除我还手写了个链表……

其实不用两次扫描+删除+输出,只要扫一遍,边扫边判断当前字母能否加入答案就行了

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
const int MAXN=2e5+;
char s[MAXN];int len,k,nxt[MAXN]; int main()
{
scanf("%s",s+);len=strlen(s+);
for(int i=;i<=len;i++) nxt[i]=i+;
k=;nxt[len+]=len+;
while(nxt[nxt[k]]!=len+)
if(s[k]==s[nxt[k]]&&s[nxt[k]]==s[nxt[nxt[k]]])
nxt[k]=nxt[nxt[k]];
else k=nxt[k];
k=;
while(nxt[nxt[nxt[k]]]!=len+)
if(s[k]==s[nxt[k]]&&s[nxt[nxt[k]]]==s[nxt[nxt[nxt[k]]]])
nxt[nxt[k]]=nxt[nxt[nxt[k]]];
else k=nxt[k];
k=;
while(k!=len+) printf("%c",s[k]),k=nxt[k];
return ;
}

Problem C

D:

答案的可行性具有单调性,明显可以二分

由于使用自己的钱数为$a-\sum p_i$,和哪些人参与购买无关

因此每次判断时可以采取贪心的策略

1、选择拥有钱数最多的$k$个人和价格最低的$k$个车购买

2、为了使额外挪用的钱数不超过$a$,人和车从小到大排序后一一对应明显是最优的选择

最后要特判$\sum p_i\le a$的情况,此时直接减会出现负数,因此要用最终答案和0取max!!!

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
const int MAXN=1e5+;
int n,m,a,p[MAXN],b[MAXN];ll pre[MAXN]; bool check(int x)
{
ll sum=;
for(int i=;i<=x;i++)
if(b[n-x+i]<p[i]) sum+=p[i]-b[n-x+i];
return sum<=a;
} int main()
{
scanf("%d%d%d",&n,&m,&a);
for(int i=;i<=n;i++) scanf("%d",&b[i]);
for(int i=;i<=m;i++) scanf("%d",&p[i]);
sort(b+,b+n+);sort(p+,p+m+);
for(int i=;i<=m;i++) pre[i]=pre[i-]+p[i]; int l=,r=min(m,n);
while(l<=r)
{
int mid=(l+r)>>;
if(check(mid)) l=mid+;
else r=mid-;
}//答案一定要记得取MAX!
printf("%d %d",r,max(pre[r]-a,0ll));
return ;
}

Problem D

E:

貌似题解出锅了……

后面再填吧,其实就是一个预处理+暴力枚举

[Codeforces #211] Tutorial的更多相关文章

  1. [Codeforces #172] Tutorial

    Link: Codeforces #172 传送门 A: 一眼看上去分两类就可以了 1.每个矩形只有两条边相交,重合的形状为菱形 2.每个矩形四条边都有相交 对于情况1答案为$h*h/sin(a)$ ...

  2. [Codeforces #514] Tutorial

    Link: Codeforces #514 传送门 很简单的一场比赛打崩了也是菜得令人无话可说…… D: 一眼二分,发现对于固定的半径和点,能包含该点的圆的圆心一定在一个区间内,求出区间判断即可 此题 ...

  3. [Codeforces #210] Tutorial

    Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...

  4. [Codeforces #196] Tutorial

    Link: Codeforces #196 传送门 A: 枚举 #include <bits/stdc++.h> using namespace std; #define X first ...

  5. [Codeforces #174] Tutorial

    Link: Codeforces #174 传送门 A: 求原根的个数,有一条性质是原根个数为$\phi(\phi(n))$,多了一个不会证的性质 如果要确定哪些是原根的话还是要枚举,不过对于每个数不 ...

  6. [Codeforces #190] Tutorial

    Link: Codeforces #190 传送门 A: 明显答案为$n+m-1$且能构造出来 #include <bits/stdc++.h> using namespace std; ...

  7. [Codeforces #192] Tutorial

    Link: Codeforces #192 传送门 前两天由于食物中毒现在还要每天挂一天的水 只好晚上回来随便找套题做做找找感觉了o(╯□╰)o A: 看到直接大力模拟了 但有一个更简便的方法,复杂度 ...

  8. [Codeforces #201] Tutorial

    Link: 传送门 代码量很少的一套思维题 A: 试一试发现最后状态一定是所有$min,max$间$gcd$的倍数 直接判断数量的奇偶性即可 #include <bits/stdc++.h> ...

  9. [Codeforces #188] Tutorial

    Link: Codeoforces #188 传送门 A: 先全转为正数,后面就全是指数级增长了 #include <bits/stdc++.h> using namespace std; ...

随机推荐

  1. 彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题

    最近在使用静态库时,总是出现这个问题.下面总结一下我得解决方法: 1. .m文件没有导入    在Build Phases里的Compile Sources 中添加报错的文件 2. .framewor ...

  2. 【转载】Quick 中的触摸事件

    原文地址 http://cn.cocos2d-x.org/article/index?type=quick_doc&url=/doc/cocos-docs-master/manual/fram ...

  3. [POI2004] SZP (贪心+拓扑排序)

    [问题描述] Byteotian 中央情报局(BIA) 雇佣了许多特工. 他们每个人的工作就是监视 另一名特工. Byteasar 国王需要进行一次秘密行动,所以他要挑选尽量多的信得过的特工. 但 是 ...

  4. Can you answer these queries?(HDU4027+势能线段树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 题目: 题意:n个数,每次区间更新将其数值变成它的根号倍(向下取整),区间查询数值和. 思路:易 ...

  5. pythonTensorFlow实现yolov3训练自己的目标检测探测自定义数据集

    1.数据集准备,使用label标注好自己的数据集. https://github.com/tzutalin/labelImg 打开连接直接下载数据标注工具, 2.具体的大师代码见下链接 https:/ ...

  6. fundamentals of the jQuery library

    1.why is jquery Only 32kB minified and gzipped. Can also be included as an AMD module Supports CSS3 ...

  7. perl HTML::LinkExtor模块(1)

    use LWP::Simple; use HTML::LinkExtor; $html = get("http://www.baidu.com"); $link = HTML::L ...

  8. jQuery -《锋利的jQuery》————读后小结

    jQuery是一个优秀的javascript库. 我用的是vs2012自带的  jquery-1.8.2.js这个库,在Scripts这个文件夹下面 首先,我们使用jQuery要在head标签内引入j ...

  9. JDBC数据源连接池(3)---Tomcat集成DBCP

    此文续<JDBC数据源连接池(2)---C3P0>. Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池.在使用中,只要进行相应配置即可. 首先,确保Web ...

  10. django使用haystack对接Elasticsearch实现商品搜索

    # 原创,转载请留言联系 前言: 在做一个商城项目的时候,需要实现商品搜索功能. 说到搜索,第一时间想到的是数据库的 select * from tb_sku where name like %苹果手 ...