B. Spotlights

题意

  有n×m个格子的矩形舞台,每个格子里面可以安排一个演员或聚光灯,聚光灯仅可照射一个方向(俯视,上下左右)。若聚光灯能照到演员,则称为“good position”,求:共有多少“good position”(同一格子的不同照射方向算作不同的position)。

分析

  对于一行而言,只要分别找到两侧第一个演员的位置(命名“标志位”),就能确定这一行的“good position”。两标志位以外的聚光灯只能投向一个方向(∵两标志位在同一侧),标志位之间的聚光灯能投向两个方向(即左右两侧的标志位)。因此,只要计算出两标志位以外的0元个数加上标志位之间0元个数×2就是这一行的“good position”的个数。列同理,然后全部相加即可。

代码

 #include <bits/stdc++.h>
#define max_n 1001 using namespace std; int n, m, r1[max_n], r2[max_n], c1[max_n], c2[max_n], r0[max_n], c0[max_n], ans;
int main()
{
std::ios::sync_with_stdio();
cin >> n >> m;
int temp;
for(int i=; i<=n; i++) { // 1e6
for(int j=; j<=m; j++) {
cin >> temp;
if(temp) {
if(!r1[i]) r1[i] = j;
r2[i] = j;
if(!c1[j]) c1[j] = i;
c2[j] = i;
} else {
r0[i]++;
c0[j]++;
}
}
}
for(int i=; i<=n; i++) { // 1e3
if(r1[i]!=) {
int t = r1[i]-+m-r2[i];
ans += *r0[i]-t;
}
}
for(int j=; j<=m; j++) { // 1e3
if(c1[j]!=) {
int t = c1[j]-+n-c2[j];
ans += *c0[j]-t;
}
}
cout << ans;
return ;
}

Unfold Code

总结

  这里有一个卡时间的输入数据1000×1000,若只用cin会造成缓冲区超时。缓冲区超时:由于iostream的缓冲跟stdio的同步,导致cin读取速度很慢,用 std::ios::sync_with_stdio(false); 取消同步,加快速度,但是取消了之后,cin不能和stdio的输入(scanf,fscanf, getchar, fgets等)同时使用,不然可能导致输出与预期不一样,另外,cout尽量少加endl,也是防止超时。所以:尽量使用scanf和printf

Codeforces Round #380 (Div. 2) 总结分享的更多相关文章

  1. Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)

    http://codeforces.com/contest/737 A: 题目大意: 有n辆车,每辆车有一个价钱ci和油箱容量vi.在x轴上,起点为0,终点为s,中途有k个加油站,坐标分别是pi,到每 ...

  2. Codeforces Round #380 (Div. 2) 解题报告

    第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...

  3. Codeforces Round #380(div 2)

    A. 题意:给你一串字符串(<=100),将ogo ogogo ogogogo ogogogogo……这种全部缩成***,输出缩后的字符串 分析:第一遍扫对于那些go的位置,记录下next[i] ...

  4. codeforces Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)// 二分的题目硬生生想出来ON的算法

    A. Road to Cinema 很明显满足二分性质的题目. 题意:某人在起点处,到终点的距离为s. 汽车租赁公司提供n中车型,每种车型有属性ci(租车费用),vi(油箱容量). 车子有两种前进方式 ...

  5. Codeforces Round #379 (Div. 2) 总结分享

    前言 初入acm的新手,打算在cf混.这几天没有比赛,就做了个最新的Virtual participation.虽然说div2比较简单,但还是被虐得体无完肤...Orz.两个小时,共6道题.最后只AC ...

  6. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2) E. Subordinates 贪心

    E. Subordinates time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  7. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2) D. Sea Battle 模拟

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)C. Road to Cinema 二分

    C. Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  9. Codeforces Round #380 (Div. 2)D. Sea Battle

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

随机推荐

  1. 高速PCB之EMC设计47则

    高速PCB之EMC设计47则 差模电流和共模电流 辐射产生 电流导致辐射,而非电压,静态电荷产生静电场,恒定电流产生磁场,时变电流既产生电场又产生磁场.任何电路中存在共模电流和差模电流,差模信号携带数 ...

  2. android 不同dpi图标大小

    LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px.MDPI (Medium Density Screen, 160 DPI),其图标大小为 48 ...

  3. <Oracle Database>数据库启动与关闭

    启动和关闭Oracle数据库 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用INTERNAL用户来启动和关闭数据库(INT ...

  4. 【转载】为什么V8引擎这么快?

    原文地址:http://blog.csdn.net/horkychen/article/details/7761199

  5. 【原创】JAVA并发编程——Callable和Future源码初探

    JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...

  6. java类集开发中一对多和多对多的关系的实现

    摘自<java开发实战经典>李兴华.著 一对多的关系 一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示. 在定义Studen ...

  7. 条件随机场理论分析CRF(Conditional Random Field)

  8. cobbler配置

    :ks脚本关闭pxe,这样就不会重复安装 sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings 6:TFTP服务器 ...

  9. 多个div居中显示

    页面中有多个div时我们希望并排居中显示,可以通过在并排显示的div上一层再加一个div,设定宽度,然后让其居中显示达到需要的效果. 关键是要对外层div设定宽度. <!DOCTYPE html ...

  10. 12G服务器在BIOS中收集阵列卡日志(TTY日志)的方法

      如果系统进不去.请参考如下方法收集日志. 请准备个U 盘,容量在8G以下(含8G),否则会识别不到. 图片参考,以描述为准 F2 enter BIOS option--> Enter the ...