Educational Codeforces Round 46 (Rated for Div. 2)
思路:有相同抵消,没有相同的对答案+1
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 1e5 + ;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ; string a[], b[];
int n; map<string, int> mp;
int main(){
scanf("%d", &n);
for(int i = ; i <= n; i++) cin >> a[i], mp[a[i]]++;
int ans = ;
for(int i = ; i <= n; i++) {
cin >> b[i];
if(mp[b[i]]) {
mp[b[i]]--;
} else {
ans++;
}
}
printf("%d\n", ans);
return ;
} /*
*/
思路:求一下前缀,如果要加一个开关肯定是加在原来是关的前面一个或者后面一个,枚举一下就好啦。
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = ; int n, M, sum[N], fsum[N], a[N];
int main(){
scanf("%d%d", &n, &M);
for(int i = ; i <= n; i++) scanf("%d", &a[i]);
a[++n] = M;
for(int i = ; i <= n; i++) {
sum[i] = sum[i - ];
if(i & ) sum[i] += a[i] - a[i - ];
fsum[i] = a[i] - sum[i];
} int ans = sum[n];
for(int i = ; i < n; i++) {
if(i & ) {
if(a[i] > a[i - ] + ) {
int ret = a[i] - a[i - ] - ;
ret += fsum[n] - fsum[i];
ret += sum[i - ];
ans = max(ans, ret);
} if(a[i] < a[i + ] - ) {
int ret = sum[i];
ret += fsum[n] - fsum[i + ];
ret += a[i + ] - a[i] - ;
ans = max(ans, ret);
}
}
} printf("%d\n", ans);
return ;
} /*
*/
思路:离散化差分标记搞一搞
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 1e6 + + 2e5;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ; LL n, tot, in[N], out[N], ans[N];
LL hs[N], l[N], r[N]; int main(){
scanf("%lld", &n);
for(int i = ; i <= n; i++) {
scanf("%lld%lld", &l[i], &r[i]);
hs[++tot] = l[i];
hs[++tot] = r[i];
hs[++tot] = l[i] + ;
hs[++tot] = l[i] - ;
hs[++tot] = r[i] + ;
hs[++tot] = r[i] - ;
} sort(hs + , hs + + tot);
tot = unique(hs + , hs + + tot) - hs - ; for(int i = ; i <= n; i++) {
int pos1 = lower_bound(hs + , hs + + tot, l[i]) - hs;
int pos2 = lower_bound(hs + , hs + + tot, r[i]) - hs;
in[pos1]++;
out[pos2]++;
} LL cnt = ;
for(int i = ; i < tot; i++) {
cnt += in[i];
ans[cnt]++;
cnt -= out[i];
LL num = hs[i + ] - hs[i] - ;
ans[cnt] += num;
} cnt += in[tot];
ans[cnt]++; for(int i = ; i <= n; i++) printf("%lld ", ans[i]);
return ;
} /*
*/
D - Yet Another Problem On a Subsequence
题目大意:给你n个数字 (n <= 1000), 问你有多少个子序列是good sequence
good sequence的定义是能变成若干个good arrays
good array 的定义是这个数组的第一个元素的值等于这个数组的length - 1。
思路: A了三题之后日常开始挂机。。。 还是太菜啦!!!!
比赛的时候感觉是个dp,但是不知到如何定义状态。。。
后来发现原来我看错了题,原来是把good sequence划分成若干个good arrays
我们定义dp[ i ],表示从第 i 个开始,并且 i 作为一个array第一个元素的的合法答案的方案数。
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 1e3 + ;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = ; int a[N], dp[N], C[N][N], n; void init() {
for(int i = (C[][] = ); i < N; i++)
for(int j = (C[i][] = ); j < N; j++)
C[i][j] = (C[i - ][j] + C[i - ][j - ]) % mod;
} int main() {
init();
scanf("%d", &n);
for(int i = ; i <= n; i++) {
scanf("%d", &a[i]);
} dp[n + ] = ; for(int i = n; i >= ; i--) {
if(a[i] > ) {
for(int j = i + a[i] + ; j <= n + ; j++) {
dp[i] = (dp[i] + 1LL * dp[j] * C[j - i - ][a[i]]) % mod;
}
}
} int ans = ; for(int i = ; i <= n; i++) {
ans = (ans + dp[i]) % mod;
} printf("%d\n", ans);
return ;
}
/*
*/
Educational Codeforces Round 46 (Rated for Div. 2)的更多相关文章
- Educational Codeforces Round 46 (Rated for Div. 2) E. We Need More Bosses
Bryce1010模板 http://codeforces.com/contest/1000/problem/E 题意: 给一个无向图,求图的最长直径. 思路:对无向图缩点以后,求图的最长直径 #in ...
- Educational Codeforces Round 46 (Rated for Div. 2) C. Covered Points Count
Bryce1010模板 http://codeforces.com/problemset/problem/1000/C 题意:问你从[l,r]区间的被多少条线覆盖,列出所有答案. 思路:类似括号匹配的 ...
- Educational Codeforces Round 46 (Rated for Div. 2) B. Light It Up
Bryce1010模板 http://codeforces.com/problemset/problem/1000/B 思路:先用两个数组sumon[]和sumoff[]将亮着的灯和灭的灯累计一下. ...
- Educational Codeforces Round 46 (Rated for Div. 2) A. Codehorses T-shirts
Bryce1010模板 http://codeforces.com/problemset/problem/1000/A 题意: 问你将一种类型的衣服转换成另一种的最小次数. #include<b ...
- Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
这个题是dp, dp[i]代表以i开始的符合要求的字符串数 j是我们列举出的i之后一个字符串的开始地址,这里的C是组合数 dp[i] += C(j - i - 1, A[i]] )* dp[j]; # ...
- Educational Codeforces Round 46 (Rated for Div. 2) D
dp[i]表示一定包含第I个点的好的子序列个数,那么最终答案就是求dp[0] + dp[1] + .... + dp[n-1] 最终的子序列被分成了很多块,因此很明显我们枚举第一块,第一块和剩下的再去 ...
- Educational Codeforces Round 72 (Rated for Div. 2)-D. Coloring Edges-拓扑排序
Educational Codeforces Round 72 (Rated for Div. 2)-D. Coloring Edges-拓扑排序 [Problem Description] 给你 ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
随机推荐
- OpenCV---人脸检测
一:相关依赖文件下载 https://github.com/opencv/opencv 二:实现步骤(图片检测) (一)读取图片 image= cv.imread("./d.png&qu ...
- Spring 源码学习(3) —— 增加属性注册编辑器
创建一个实体类UserManager: /** * @filename: UserManager.java * @desc 增加属性编辑器功能测试实体类 * @author: Wang Chinda ...
- 转:数据标准化/归一化normalization
转自:数据标准化/归一化normalization 这里主要讲连续型特征归一化的常用方法.离散参考[数据预处理:独热编码(One-Hot Encoding)]. 基础知识参考: [均值.方差与协方差矩 ...
- 区间->点,点->区间,线段树优化建图+dijstra Codeforces Round #406 (Div. 2) D
http://codeforces.com/contest/787/problem/D 题目大意:有n个点,三种有向边,这三种有向边一共加在一起有m个,然后起点是s,问,从s到所有点的最短路是多少? ...
- 从零搭建SSM框架(三)SSM框架整合
整合思路 1.Dao层: Mybatis的配置文件:SqlMapConfig.xml 不需要配置任何内容,需要有文件头.文件必须存在. applicationContext-dao.xml: myba ...
- ArrayList既然继承自AbstractList抽象类,而AbstractList已经实现了List接口,那么ArrayList类为何还要再实现List接口呢?
https://www.cnblogs.com/bluejavababy/p/4320545.html
- Angular测试遇到的小坑
Angular测试遇到的小坑 Error: Expected to be running in 'ProxyZone', but it was not found 检查doneFn的写法是否正确,位置 ...
- Html5学习4
1.Html5 Web储存 概念:使用HTML5可以在本地存储用户的浏览数据.早些时候,本地存储使用的是 cookie.但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些 ...
- python学习笔记(十二)之函数
牛刀小试: 定义一个无参函数 >>> def myFirstFunc(): ... print("Hello python") ... print("h ...
- node的简单爬虫
最近在学node,这里简单记录一下. 首先是在linux的环境下,关于node的安装教程: https://github.com/alsotang/node-lessons/tree/master ...