Codeforces Round #493 (Div. 1)
A.
/*
发现每次反转或者消除都会减少一段0
当0只有一段时只能消除
这样判断一下就行 */ #include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<set>
#include<map>
#define M 300010
#define ll long long using namespace std;
int read() {
int nm = , f = ;
char c = getchar();
for(; !isdigit(c); c = getchar()) if(c == '-') f = -;
for(; isdigit(c); c = getchar()) nm = nm * + c - '';
return nm * f;
}
ll n,x,y;
char s[M];
int main() {
n = read(), x = read(), y = read();
scanf("%s", s + );
int len = strlen(s + );
s[] = '?';
ll tot = ;
for(int i = ; i <= len; i++) if(s[i] != s[i - ] && s[i] == '') tot++;
if(tot == ) return puts("");
cout << min(tot * y, tot * x - x + y);
return ;
}
B.
/*
可能这种题是打表克星
小数据部分没有规律 数据大了有规律 //一个显然的结论 ,如果数字总数确定的话我们求 1, 5, 10, 50 加起来的不同和的个数相当于求0, 4, 9, 49 的
好吧打打表就出来了
对于前12的数据 直接暴力 ,后面的线性增加 */ #include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<set>
#include<map>
#define M 30
#define ll long long using namespace std;
int read() {
int nm = , f = ;
char c = getchar();
for(; !isdigit(c); c = getchar()) if(c == '-') f = -;
for(; isdigit(c); c = getchar()) nm = nm * + c - '';
return nm * f;
}
const ll dx[]={,,,,,,,,,,,,,,,};
int main() {
ll n = read();
if(n <= ) cout << dx[n];
else cout << dx[] + (n - ) * ;
return ;
}
C.
显然同色的一行在哪一行对答案贡献是一样的,于是我们可以直接得出容斥的式子


/*
difficult 看题解啦 */ #include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<set>
#include<map>
#define M 1231231
#define ll long long
const int mod = ;
using namespace std;
int read() {
int nm = , f = ;
char c = getchar();
for(; !isdigit(c); c = getchar()) if(c == '-') f = -;
for(; isdigit(c); c = getchar()) nm = nm * + c - '';
return nm * f;
}
ll poww(ll a, ll b) {
ll as = , tmp = a;
for(; b; b >>= , tmp = tmp * tmp % mod) if(b & ) as = as * tmp % mod;
return as;
}
ll c[M]; inline ll ni(ll a) {
return poww(a, mod - );
}
void shai(ll n) {
c[] = ;
for(int i = ; i <= n; i++) c[i] = c[i - ] * (n - i + ) % mod * ni(i) % mod;
}
int main() {
ll n = read();
ll ans = ;
shai(n);
for(int i = , j = ; i <= n; i++, j = -j) ans += j * c[i] % mod * poww(, (n - i) * n + i) % mod, ans %= mod;
ans = ans * % mod;
for(int i = , j = -; i < n; i++, j = -j) ans += 3ll * c[i] * j % mod * (poww(1ll - poww(, i), n) - poww(-1ll * poww(3ll, i), n)) % mod, ans %= mod;
cout << (ans + mod) % mod;
return ;
}
Codeforces Round #493 (Div. 1)的更多相关文章
- Codeforces Round #493 (Div 2) (A~E)
		目录 Codeforces 998 A.Balloons B.Cutting C.Convert to Ones D.Roman Digits E.Sky Full of Stars(容斥 计数) C ... 
- Cutting Codeforces Round #493 (Div. 2)
		Cutting There are a lot of things which could be cut — trees, paper, “the rope”. In this problem you ... 
- Codeforces Round #493 (Div. 2)
		C - Convert to Ones 给你一个01串 x是反转任意子串的代价 y是将子串全部取相反的代价 问全部变成1的最小代价 两种可能 一种把1全部放到一边 然后把剩下的0变成1 要么把所有的 ... 
- Codeforces Round #493 (Div. 2)D. Roman Digits 第一道打表找规律题目
		D. Roman Digits time limit per test 1 second memory limit per test 256 megabytes input standard inpu ... 
- 【Codeforces Round #493 (Div. 2) B】Cutting
		[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然只有在前i个位置奇数偶数出现次数都相同的地方才能切. (且不管前面怎么切,这里都能切的. 那么就相当于有n个物品,每个物品的代价 ... 
- Codeforces Round #493 (Div. 2) A. Balloons 贪心水题
		由于是输出任意一组解,可以将价值从小到大进行排序,第一个人只选第一个,第二个人选其余的.再比较一下第一个人选的元素和第二个人所选元素和是否相等即可.由于已将所有元素价值从小到大排过序,这样可以保证在有 ... 
- Codeforces Round #493 (Div. 1) B. Roman Digits 打表找规律
		题意: 我们在研究罗马数字.罗马数字只有4个字符,I,V,X,L分别代表1,5,10,100.一个罗马数字的值为该数字包含的字符代表数字的和,而与字符的顺序无关.例如XXXV=35,IXI=12. 现 ... 
- Codeforces Round #493 (Div. 2)  C. Convert to Ones 乱搞_构造_好题
		题意: 给你一个长度为 nnn 的 010101串 ,你有两种操作: 1.将一个子串翻转,花费 XXX 2.将一个子串中的0变成1,1变成0,花费 YYY 求你将这个01串变成全是1的串的最少花费. ... 
- Codeforces Round #493 (Div. 2) B. Cutting 前缀和优化_动归水题
		不解释,题目过水 Code: #include<cstdio> #include<cmath> #include<algorithm> using namespac ... 
随机推荐
- ik_max_word ik_smart 区别 和 单字 查询 不到问题
			ik_smart:分词的时候只分一次,句子里面的每个字只会出现一次. 比如:中华人民共和国国歌 入上图,分成:中华人民共和国 国歌 2 部分.每个字都自出现了一次.(我指的每一个位置 的子. 2个国 ... 
- 2019.4.11 一题 XSY 1551 ——广义后缀数组(trie上后缀数组)
			参考:http://www.mamicode.com/info-detail-1949898.html (log2) https://blog.csdn.net/geotcbrl/article/de ... 
- Feign 请求拦截器和日志
			Feign 支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参 ... 
- websocket连接的后台反向代理问题
			今天要介绍的问题,是一个相对来说比较经典的问题,问题表面看不是很复杂的问题,但是反映出的背后通信逻辑,其实还是比较有意义的. websocket协议是当前绝大部分浏览器都支持的长连接协议,是HTTP协 ... 
- 配置 influxDB 鉴权及 HTTP API 写数据的方法
			本文简要描述如何为 InfluxDB 开启鉴权和配置用户管理权限(安装后默认不需要登录),以及开启鉴权后如何使用 HTTP API 写数据. 创建 InfluxDB 管理员账号创建 admin 帐号密 ... 
- VS2013编译Qt5.2.1 32位静态库debug-and-release版及结果分享
			1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.2.1.zip这个文件. 2.安装python 3.解压缩qt-everywhere-opensource ... 
- WPF DataGrid 导出Excel
			#region Excel导出 private void btnExportExcel_Click(object sender, RoutedEventArgs e) { Export(this.dg ... 
- javac命令和java命令
			要知道java是分两部分的:一个是编译,一个是运行. javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序.对指定扩展名的.java文件进行编译. 生成了jvm可以识别的字节 ... 
- PAT 乙级 1070 结绳(25) C++版
			1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条 ... 
- 廖雪峰Java1-3流程控制-4switch多重选择
			switch语句 根据switch(表达式)跳转到匹配的case结果,继续执行case结果: 的后续语句,遇到break结束执行,没有匹配条件,执行default语句. int i = 3 switc ... 
