Codeforces Round #581(Div. 2)

CF 1204 A. BowWow and the Timetable

题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$。

所以暴力判一下就好。

Code:

#include <bits/stdc++.h>

#define N 110 

using namespace std;

char s[N];

int main() {
scanf("%s", s + 1);
int n = strlen(s + 1);
int now = n / 2;
int flag = 0;
for (int i = 2; i <= n; i ++ ) {
if (s[i] == '1') {
flag = 1;
}
}
now += flag;
cout << now << endl ;
return 0;
}

CF 1204 B. Mislove Has Lost an Array

题解:发现题目的要求就是出现的数是前$k$个$2$的幂次,每个都得出现至少一次。

最小值的话,就是满足了$k$等于$l$的情况下,剩下的都等于$1$即为最小值。

最大值的话,就是满足了$k$等于$r$的情况下,剩下的都等于$2^r$即为最大值。

Code:

#include <bits/stdc++.h>

using namespace std;

int bin[21];

int main() {
int n, l, r;
cin >> n >> l >> r;
bin[0] = 1;
for (int i = 1; i <= r; i ++ ) {
bin[i] = bin[i - 1] << 1;
}
int mn, mx;
mn = bin[l] + n - l - 1;
mx = (n - r + 2) * bin[r - 1] - 1;
cout << mn << ' ' << mx << endl ;
return 0;
}

CF 1204 C. Anna, Svyatoslav and Maps

题解:我就是个得看样例才能读懂题意的傻屌中国人......

就是要看一下,能不能拿出来一些点使得,这些点之间的最短路和原图的最短路长度一样。

直接暴力一个一个判就行。

最短路的话求个$floyd$就好。

Code:

#include <bits/stdc++.h>

#define N 110 

using namespace std;

char s[N][N];

int dis[N][N];

int p[1000010 ];

int ans[1000010 ];

int main() {
int n;
cin >> n ;
for (int i = 1; i <= n; i ++ ) {
scanf("%s", s[i] + 1);
}
memset(dis, 0x3f, sizeof dis);
for (int i = 1; i <= n; i ++ ) {
for (int j = 1; j <= n; j ++ ) {
if (s[i][j] == '1') {
dis[i][j] = 1;
}
}
dis[i][i] = 0;
}
for (int k = 1; k <= n; k ++ ) {
for (int i = 1; i <= n; i ++ ) {
for (int j = 1; j <= n; j ++ ) {
dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);
}
}
} int m;
cin >> m;
for (int i = 1; i <= m; i ++ ) {
scanf("%d", &p[i]);
}
ans[ ++ ans[0]] = p[1];
int pre = p[1];
for (int i = 2; i <= m; i ++ ) {
if (pre == p[i - 1]) {
continue;
}
if (dis[pre][p[i - 1]] + 1 != dis[pre][p[i]]) {
pre = p[i - 1];
ans[ ++ ans[0]] = pre;
}
}
ans[ ++ ans[0]] = p[m];
cout << ans[0] << endl ;
for (int i = 1; i <= ans[0]; i ++ ) {
printf("%d ", ans[i]);
}
puts("");
return 0;
}

CF 1204 D2. Kirk and a Binary String (hard version)

题解:妈呀神仙题......

就是我们发现什么样的串串是不能动的:

“10”显然。

如果$s$不能动,那么$1s0$不能动。

那么我们把所有的,不能动的串都删掉即可,剩下的就都变成1就好了。

Code:

#include <bits/stdc++.h>

#define N 100010 

using namespace std;

char s[N];

int main() {
scanf("%s", s + 1);
int n = strlen(s + 1);
int tmp = 0;
for (int i = n; i; i -- ) {
if (s[i] == '0') {
tmp ++ ;
}
else if (tmp) {
tmp -- ;
}
else {
s[i] = '0';
}
}
for (int i = 1; i <= n; i ++ ) {
putchar(s[i]);
}
return 0;
}

CF 1204 E. Natasha, Sasha and the Prefix Sums

好题呀

先设$g[x][y]$表示,$x$个数有$y$个是$-1$,构成的所有序列中,$f$值等于$0$的序列个数。

显然当$x>y$时,$g[x][y]=0$。否则就是$C(x + y, y) - C(x + y, y + 1)$。

再设$f[x][y]$表示答案。

转移用$g[x][y]$和组合数就好。

Code:

#include <bits/stdc++.h>

#define N 4010 

using namespace std;

const int mod = 998244853 ;

typedef long long ll;

int qpow(int x, int y) {
int ans = 1;
while (y) {
if (y & 1) {
ans = (ll)ans * x % mod;
}
y >>= 1;
x = (ll)x * x % mod;
}
return ans;
} int f[N][N], g[N][N]; int fac[N], inv[N]; inline int C(int x, int y) {
if (x < y) {
return 0;
}
return (ll)fac[x] * inv[y] % mod * inv[x - y] % mod;
} int main() {
int n, m;
cin >> n >> m ;
fac[0] = 1;
for (int i = 1; i <= n + m; i ++ ) {
fac[i] = (ll)fac[i - 1] * i % mod;
}
inv[n + m] = qpow(fac[n + m], mod - 2);
for (int i = n + m - 1; ~i; i -- ) {
inv[i] = (ll)inv[i + 1] * (i + 1) % mod;
} g[0][0] = 1;
for (int i = 0; i <= n; i ++ ) {
for (int j = i; j <= m; j ++ ) {
if (i) {
g[i][j] = g[i - 1][j];
}
if (j) {
g[i][j] = (g[i][j] + g[i][j - 1]) % mod;
}
}
} for (int i = 1; i <= n; i ++ ) {
for (int j = 0; j <= m; j ++ ) {
f[i][j] = (f[i - 1][j] + C(i + j - 1, j)) % mod;
if (j) {
f[i][j] = (((f[i][j] + f[i][j - 1]) % mod + g[i][j - 1] - C(i + j - 1, j - 1)) % mod + mod) % mod;
}
}
}
cout << f[n][m] << endl ;
return 0;
}

Codeforces Round #581(Div. 2)的更多相关文章

  1. Codeforces Round #334(div.2)(新增不用二分代码) B

    B. More Cowbell time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  2. Codeforces Round #334(div.2) A

    A. Uncowed Forces time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  3. codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)

    题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...

  4. Codeforces Round #626 (Div. 2) B. Count Subrectangles

    题目连接:https://codeforces.com/contest/1323/problem/B 题意:给一个大小为n的a数组,一个大小为m的b数组,c数组是二维数组c[i][j]=a[i]*b[ ...

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

    除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest F ...

  6. Codeforces Round 1153(div. 2)

    这场奇差.ABCD四题.179名. 但是E在现场有213个人做出. 描述一下我在35分钟做完D后的心路历程. 首先看到这道E,第一下想到的是把所有的横向和竖向的整列(行)求出相连的个数. 然后想如何能 ...

  7. Codeforces Round #345 (Div 2)

    最后两题是orzCJK学长帮忙代打的,不过总算是到蓝名了(上次睡迟了,只剩半个小时,结果作大死点开题目看,结果rating掉了100多),还有论代码风格的重要性!!!(没写空格被学长各种D) A题 题 ...

  8. Codeforces Round #622(Div 2)C2. Skyscrapers (hard version)

    题目链接 : C2. Skyscrapers (hard version) 题目描述 : 与上一道题类似,只是数据范围变大, 5e5, 如果用我们原来的方法,铁定是超时的. 考察点 : 单调栈,贪心, ...

  9. Codeforces Round #556(Div.1)

    A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...

随机推荐

  1. Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)

    Vue 事件监听实现导航栏吸顶效果(页面滚动后定位) Howie126313 关注 2017.11.19 15:05* 字数 100 阅读 3154评论 0喜欢 0 所说的吸顶效果就是在页面没有滑动之 ...

  2. virtualBox中有线和无线两种情况下centos虚拟机和本地机互ping的方案

    之前写微信点餐系统的时候,刚开始是无线连接,然后每次进去虚拟机ip和本地ip都会改变,所以每次都需要配置一下nginx,还有本地的路径.之后换有线连接,就研究了一下桥接模式有线情况下虚拟机静态ip设置 ...

  3. CUDA-F-5-5-常量内存

    title: [CUDA 基础]5.5 常量内存 categories: - CUDA - Freshman tags: - CUDA常量内存 - CUDA只读缓存 toc: true date: 2 ...

  4. Sqlite3错误:Recursive use of cursors not allowed 的解决方案

    感悟] 写完这篇日志后,有调了一段时间程序,又有了一点心得分享下: 一)爬稳定的数(dong)据(xi)最好存储下来,特别是数据库在国外的那种,下载时间成本太高昂了,存起来再处理,会节约很多时间: 二 ...

  5. 理解urllib、urllib2及requests区别及运用

    urllib and urllib2 区别 –博主提示:下面的是python2中的用法,python3需要做出相应修改. urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功 ...

  6. AcWing:238. 银河英雄传说(带权并查集)

    有一个划分为N列的星际战场,各列依次编号为1,2,…,N. 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列. 有T条指令,每条指令格式为以下两种之一: 1.M i j,表示让第i号战 ...

  7. skbuff

    在2.6.24之后这个结构体有了较大的变化,此处先说一说2.6.16版本的sk_buff,以及解释一些问题. 一. 先直观的看一下这个结构体~~~~~~~~~~~~~~~~~~~~~~在下面解释每个字 ...

  8. jquery+ajax 实现搜索框提示

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

  9. koa 实现下载文件

    文件下载需要使用到koa-send这个插件,该插件是一个静态文件服务的中间件,它可以用来实现文件下载的功能. 1.下载页面 static/download.html <!DOCTYPE html ...

  10. Bootstrap4项目开发实战视频教程

    一.企业网站项目 课件 0.课程简介 1.顶部区域的制作 2.导航区域的制作 3.轮播区域的制作 4.产品区域的制作 5.最新资讯区域的制作 6.底部区域的制作 二.化妆品网站项目 1.项目初始化_导 ...