思维题--code forces round# 551 div.2】的更多相关文章

思维题--code forces round# 551 div.2 题目 D. Serval and Rooted Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Now Serval is a junior high school student in Japari Middle School, and he is…
Codeforces Round #551 (Div. 2) 算是放弃颓废决定好好打比赛好好刷题的开始吧 A. Serval and Bus 处理每个巴士最早到站且大于t的时间 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ')…
CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\)是子树i中的i是第dp_i大的(相同大小放在后面). \(opt=1,dp_u=max(dp[v])(v\in G)\) \(opt=0,dp_u=\sum\limits _{v\in G}{dp[v]}\) dp[1]是1到k中第dp[1]大的,就是k-dp[1]+1 然后\(ans=k-dp[…
题目传送门 /* 水题:三个字符串判断每个是否有相应的元音字母,YES/NO 下午网速巨慢:( */ #include <cstdio> #include <cstring> #include <string> #include <iostream> #include <algorithm> #include <cmath> using namespace std; ; const int INF = 0x3f3f3f3f; ]; i…
人生第一次交互题ac! 其实比较水 容易发现如果查询的矩阵里面包含一个端点,得到的值是奇数:否则是偶数. 所以只要花2*n次查询每一行和每一列,找出其中查询答案为奇数的行和列,就表示这一行有一个端点. 令cntr表示答案为奇数的行数,cntc表示答案为奇数的列数. 那么cntr只能为0或者2,0就表示两个头在同一行,2就表示两个头在不同的行(我们已经找出这两行了) cntc亦然. 然后cntr与cntc不可能同时为0,因为两个端点不可能既在同一行又在同一列. 所以对于cntr=cntc=2的,我…
CF1153A 直接做啊,分类讨论即可 #include<iostream> #include<string.h> #include<string> #include<stdio.h> #include<algorithm> #include<math.h> #include<vector> #include<queue> #include<map> #include<set> usin…
冲鸭,去刷题:http://codeforces.com/contest/1153/problem/C C. Serval and Parenthesis Sequence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Serval soon said goodbye to Japari kindergarten, and b…
题目大意是给你n个数,求相邻两数相乘不是完全平方数的排列数. 一开始看到这题的时候,本人便想给相乘为完全平方数的数对建边,然后就写萎了... 后来通过集体智慧发现这个重要性质:对于自然数a,b,c,若a*b为完全平方数,且b*c为完全平方数,那么a*c就是完全平方数.(我居然没想到)因此就可以对这n个数进行分组,使得每一组中两个数两两相乘为完全平方数,不同组的数两两相乘不是完全平方数.假设分成tot组,第i组的数的个数为num[i].这也就等同于相同的数不能相邻的排列问题. 于是通过PY就得到了…
突然发现上一场没有写,那就补补吧 本来这场应该5题的,结果一念之差E fail了 A. Serval and Bus 基本数学不解释,假如你没有+1 -1真的不好意思见人了 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; con…
全网好像就只有劼和manchery写了博客的样子……:正解可能是最大流?但是仔细特判也能过 题目描述 RMQ问题即区间最值问题是一个有趣的问题. 在这个问题中,对于一个长度为 n 的排列,query(l,r) 将返回 al,⋯,ar 中的最大值. 如对于 {3,1,4,2,5},query(2,4)=max(1,4,2)=4 现在我们给出 m 次询问的结果,问是否存在至少一个长度为 n 的排列 P 满足所有的条件. 输入格式 第一行 T 每一组数据中,第一行 n,m,接下来 m 行,每行 li,…
yyb大佬的博客 这线段期望好神啊... 还有O(nlogn)FFTO(nlogn)FFTO(nlogn)FFT的做法 Freopen大佬的博客 本蒟蒻只会O(n2)O(n^2)O(n2) CODE #include <bits/stdc++.h> using namespace std; const int mod = 998244353; typedef long long LL; const int MAXN = 4005; inline void add(int &x, int…
传送门 B. Serval and Toy Bricks 题意: 有一些规格相同的方块摆放在 n×m 的矩阵 h 中,h[i][j]代表第 (i,j) 个矩阵摆放的方块的高度: 现给你三个视图: 正视图:给出 m 个数据,第 i 个数据 f[ i ] 代表第 i 列方块的最大高度: 左视图:给出 n 个数据,第 i 个数据 l[ i ] 代表第 i 行方块的最大高度: 俯视图:给出 n×m 个数据,只有两个取值,第(i,j)个数据 top[ i ][ j ] 为0代表第(i,j)处无方块,为1代…
题目链接 题意:给你一个有根树,假设有k个叶子节点,你可以给每个叶子节点编个号,要求编号不重复且在1-k以内.然后根据节点的max,minmax,minmax,min信息更新节点的值,要求根节点的值最大. 解法:考虑树形dp,若当前节点是nownownow,我们可以假设编号最大的一些数分布在当前节点的子节点中,显然,若当前节点为叶子节点,那么这个这个编号就是最大的.然后往上回溯,假设当前节点取得是maxmaxmax,那么就从子节点中取最大的数为当前节点的答案,如果取得是minminmin的话,就…
E. Serval and Snake 对于一个矩形,如果蛇的一条边与它相交,就意味着这条蛇从矩形内穿到矩形外,或者从矩形外穿到矩形内.所以如果某个矩形的答案为偶数,意味着蛇的头尾在矩形的同一侧(内或外),否则意味着头和尾中一个在矩形内,一个在矩形外. 所以可以通过 for(int i = 2 ; i <= n ; ++i) ? i 1 n n 来询问出头和尾的横坐标.询问的答案从偶数变为奇数和从奇数变为偶数的位置就是头和尾分别的横坐标.对于纵坐标也这样做一遍. 可能存在头和尾在一条水平或者垂直…
题目:http://codeforces.com/contest/1153/problem/D 题意:给你一棵树,每个节点有一个操作,0代表取子节点中最小的那个值,1代表取子节点中最大的值,叶子节点的话就是自己置一个值,有k个子节点,那么每个子节点的值范围 就是1-k,1-k只能用一次 思路:贪心不好取,我肯定是要排列完才知道当前的值是哪个,但是我可以知道当前节点应该是取子节点中排名第几的那个,从而推出根节点1的排名,然后再输出就行,因为是要从 子节点那里递归上来,所以我们采取树形dp #inc…
A. Serval and Bus 算出每辆车会在什么时候上车, 取min即可 #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<iostream> #define ll long long #define M 101 #define mmp make_pair using namespace std; int read() { int…
前言:结论题似乎是我的硬伤…… 题意是给你一个无向图,已知连接到每一个点的边的权值和(为整数,且属于区间[-n,n]),需要求出每条边权值的一个合法解(都要是在区间[-2*n^2,2*n^2]内的整数). 第一个想法当然是O(n^2*m)的高斯消元.在此基础上,我想过通过选取某些节点,在边权总和中减去与之相邻的边,来逐个解出边的权值.这个本质上是优化解方程的办法难以适应全部情况,且难以通过编程实现.于是只能舍弃这个想法. 后来通过漫无边际的瞎想,观察标题,容易发现对于一棵树求解这个问题是极为容易…
题意:给你一个有向图,多次询问从一个点到另一个点字典序最小的路径上第k个点. 考虑枚举每一个点作为汇点(记为i),计算出其他所有点到i的字典序最小的路径.(当然,枚举源点也是可行的) 首先,我们建一张反向图,从i开始dfs,以删去所有无法到达i的点. 然后,因为此时图上所有点都可以到达i,所以可以贪心地在从每一个点出发的边中只保留终点编号最小的边,而把其他边删除. 这样就可以保证路径是字典序最小的,并且从每个点到i的路径只有一条. 而题目中给出了这样一种情况: there are paths f…
题目链接:http://www.codeforces.com/problemset/problem/131/A题意:字符串大小写转换.C++代码: #include <cstdio> #include <cstring> ]; bool islow(char c) { return c >= 'a' && c <= 'z'; } char up(char c) { ; } char low(char c) { ; } bool check() { cha…
题目链接:http://www.codeforces.com/problemset/problem/112/A题意:忽略大小写,比较两个字符串字典序大小.C++代码: #include <cstdio> #include <cstring> int cmp(char *s, char *t) { while (*s) { ; ; ; ; s ++; t ++; } ; } int main() { ]; ]; scanf("%s%s", s, t); print…
题目链接:http://www.codeforces.com/problemset/problem/96/A题意:判断一个0-1字符串中出现的最长的0字串或者1字串的长度是否大于等于7.C++代码: #include <cstdio> #include <iostream> #include <string> using namespace std; string s; ; bool chk() { int len = s.length(); ; i < len;…
题目链接:http://www.codeforces.com/problemset/problem/118/A题意:字符串转换……C++代码: #include <string> #include <iostream> using namespace std; string s; bool _in(char c, string s) { ; i < s.length(); i ++) if (c == s[i]) return true; return false; } in…
题目链接:http://www.codeforces.com/problemset/problem/71/A题意:将长字符串改成简写格式.C++代码: #include <string> #include <iostream> using namespace std; int n; string s; int main() { cin >> n; while (n --) { cin >> s; ) cout << s[] << s.…
题目链接:http://www.codeforces.com/problemset/problem/25/A题意:在n个书中找到唯一一个奇偶性和其他n-1个数不同的数.C++代码: #include <iostream> using namespace std; ; , y = -; int main() { cin >> n; ; i <= n; i ++) { cin >> a; == ) x = (x == -) ? i : -; else y = (y =…
题目链接:http://www.codeforces.com/problemset/problem/122/A题意:判断一个数是否能被一个lucky number整除,一个lucky number是一个只包含4或7的数.C++代码: #include <cstdio> ] = {, , , , , , , , , , , , , }; bool check(int x) { ; i < ; i ++) ) return true; return false; } int main() {…
题目链接:http://www.codeforces.com/problemset/problem/69/A题意:给你n个三维空间矢量,求这n个矢量的矢量和是否为零.C++代码: #include <cstdio> #include <iostream> using namespace std; int x, y, z; int main() { int n, tx, ty, tz; cin >> n; while (n--) { cin >> tx >…
题目链接:http://www.codeforces.com/problemset/problem/4/A题意:一个整数能否表示成两个正偶数的和.C++代码: #include <cstdio> int main() { int n; scanf("%d", &n); puts(n > && n % == ? "YES" : "NO"); ; } C++…
A. Secrets http://www.cnblogs.com/qscqesze/p/4528529.html B. Chips http://www.cnblogs.com/qscqesze/p/4528579.html…
A. Serval and Bus time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output It is raining heavily. But this is the first day for Serval, who just became 3 years old, to go to the kindergarten. Unfort…
B. Serval and Toy Bricks time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Luckily, Serval got onto the right bus, and he came to the kindergarten on time. After coming to kindergarten, he fo…