题意:https://codeforc.es/problemset/problem/1209/E2 给你一个n(1-12)行m(1-2000)列的矩阵,每一列都可以上下循环移动(类似密码锁). 问你移动后,对每一行取最大值,这些最大值再加起来的MAX是多少. 思路: 1. 首先我们有一个思维上的优化,就是我们已知n很小,m会很大.我们按照每列最大的元素值为排序标准对列进行排序. 我们发现最多只会用到前n列(就是全取每列的最大值). 2. 枚举每列对行生效的数(就是该行这个数最大),也就是有2^n…
题意:https://codeforc.es/contest/1209/problem/D 有n个点心,有k个人,每个人都有喜欢的两个点心,现在给他们排个队,一个一个吃,每个人只要有自己喜欢的点心就会吃掉(不会留给后面的人). 如果有人什么都没吃就会不开心,问怎么安排使不开心的人最少. 思路: 看成一个图的问题,点心是节点,人是一条边.对于每个连通块,总会有一个人吃两个点心,其他人吃一个(其中一个是其他人也就吃掉了的). 可以保证这样是最优的,所有每个连通块的答案是连通数 x-1. #defin…
题目:https://codeforc.es/contest/1209/problem/G1 题意:给你一个序列,要你进行一些操作后把他变成一个好序列,好序列的定义是,两个相同的数中间的数都要与他相同,可以把某一种数统一变成另一个数,问最少变得个数 思路:我们可以考虑贪心,对于一个互相牵扯的区间,我肯定是用总长减掉里面出现次数最多的元素才是最划得来的,我们直接求出这些牵扯区间的长度即可,方法就是我用数组记录每个元素出现最右的位置,然后从左到右遍历,我保留当前区间往右延伸的最长位置,然后减去出现最…
怎么老是垫底啊. 不高兴. 似乎 A 掉一道题总比别人慢一些. A. Paint the Numbers 贪心,从小到大枚举,如果没有被涂色,就新增一个颜色把自己和倍数都涂上. #include<bits/stdc++.h> #define fec(i, x, y) (int i = head[x], y = g[i].to; i; i = g[i].ne, y = g[i].to) #define dbg(...) fprintf(stderr, __VA_ARGS__) #define F…
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;string s;pair<int,int>p[200007];int ans[200007];char b[200007];int main(){ int n; cin>>n; for(int i=1;i<=n;++i){ int m; cin>>m>>s; if(m==1){ cout<&l…
C. Destroying Array time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an array consisting of n non-negative integers a1, a2, ..., an. You are going to destroy integers in the ar…
B. Verse Pattern 题目连接: http://codeforces.com/contest/722/problem/B Description You are given a text consisting of n lines. Each line contains some space-separated words, consisting of lowercase English letters. We define a syllable as a string that c…
题目链接:http://codeforces.com/contest/722/problem/D 1 #include <bits/stdc++.h> #include <iostream> #include <queue> #include <stdio.h> #include <string.h> #include <algorithm> #include <string> #include <math.h>…
A. Broken Clock time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a broken clock. You know, that it is supposed to show time in 12- or 24-hours HH:MM format. In 12-hours format…
http://codeforces.com/contest/722/problem/D 题目大意:给你一个没有重复元素的Y集合,再给你一个没有重复元素X集合,X集合有如下操作 ①挑选某个元素*2 ②某个元素*2+1 问:找到一个X集合,里面的元素与Y的元素可以相互转换,且X的max要尽量小. 思路:二分答案找就好了.从Y开始进入,不需要考虑奇偶数,反正每次都/2就行了. //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++…