CF 472 div1 D. Contact ATC】的更多相关文章

#include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <queue> #include <set> #include <stack> #include <vector> const int N = 1e5…
CF#462 div1 D:A Creative Cutout 题目大意: 原网址戳我! 题目大意: 在网格上任选一个点作为圆中心,然后以其为圆心画\(m\)个圆. 其中第\(k\)个圆的半径为\(\sqrt{k}\),\(m\)个圆的编号依次为\(1\)~\(m\). 定义一个格点的美妙值\(g(x,y)\)为包含了它的所有圆的编号之和. 定义\(f(n)\)为:当画了\(n\)个圆时,\(f(n) = \sum_{i,j\in R} g(i,j)\). 现在非常变态的问你一个非常无聊的恶心问…
Contact ATC 我跑去列方程, 然后就gg了... 我们计每个飞机最早到达时间为L[ i ], 最晚到达时间为R[ i ], 对于面对面飞行的一对飞机, 只要他们的时间有交集则必定满足条件. 对于相同方向飞行的飞机, 只有其中一个的时间包含另一个的时间才满足条件. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL…
论蒟蒻如何被cf虐 以下是身败名裂后的题解菌=========== Div1 A.Watchmen 有n个点,每个点有一个坐标.求曼哈顿距离=欧几里得距离的点对数量. 只需要统计x或y一样的点对数量.容斥即可.注意long long.(sad story //By zzq #include <iostream> #include <stdio.h> #include <stdlib.h> #include <algorithm> #include <s…
题目链接:http://codeforces.com/contest/679/problem/A CF有史以来第一次出现交互式的题目,大致意思为选择2到100中某一个数字作为隐藏数,你可以询问最多20次问题,每一次询问一个数字x,如果预先选定的隐藏数是x的倍数,则回复"yes",否则回复"no",你只需要判那个数字是否为质数(不一定需要知道具体是多少) 如果一个数字是两个质数积的倍数,则这个数字一定是合数,另外需要注意,两个质数是可以相同的.即如果隐藏数是a*b的倍…
题目链接:http://codeforces.com/problemset/problem/388/B 大意是用不超过1000个点构造一张边权为1的无向图,使得点1到点2的最短路的个数为给定值k,其中k为不超过1e9的正整数,输出邻接矩阵 构造方法也不止一种 有一种分层构造方法是这样的, 第i层的点与1号点距离为i-1 第一层放置1号点 第二层放置3号和4号点,分别与上一层的1号点相连,他们的最短路为1,且个数也为1 接下来每一层都会比上一层的点数要多1,第i+1层,首先与第i层的前i个点相连,…
题目链接:http://codeforces.com/problemset/problem/666/B 大意是给一张有向图,选取四个点,使得走这四个点,任意两个点之间走最短路,总距离最长. 3000个点直接floyd肯定不行,但是注意到任意每条路距离都是1,其实可以枚举所有源点作bfs,求出距离数组. 然后对于每个点求出以这个点为入点和出点距离最大的3个点.再根据这个信息,枚举四个点中的中间两个,再枚举这两个点距离他们最远的那3*3种情况,判断是否有重复,没有重复的话,更新答案. #includ…
题目链接:http://codeforces.com/contest/605/problem/A 大意是对一个排列进行排序,每一次操作可以将一个数字从原来位置抽出放到开头或结尾,问最少需要操作多少次可以将原排列变为有序. 一个比较很想当然的算法是用长度减去最长上升子序列,但这是错误的. 反例: 5 1 3 4 5 2 按照n-lis,会得出答案1,但显然这是做不到的,答案应是2 正解应当是考虑最终变为有序时,所有未经操作的数字,应当是连续的.所以要使得操作次数最少就要求在原来数列中位置递增的最长…
题目链接:http://codeforces.com/contest/650/problem/D 大意是给一个数组,若干询问,每一次把一个数字改为另一个数字,问当前数组最长上升子序列,询问之间是独立的. 注意到:假设初始数组的LIS长度为len.如果某一个位置的数字属于所有LIS,那么即便这个位置的数字被更改,答案至少是len-1,也有可能会因为变化维持len不变(未必是因为变化介于原来LIS前一个数字和后一个数字之间).如果某一个位置的数字不是属于所有的LIS(属于某一种或者不属于任何LIS)…
题目链接:http://codeforces.com/contest/536/problem/B 一个原始字符串,一个未知字符串,每一次从pos[i]开始覆盖未知字符串,问最后字符串的形式,以及判断过程中是否有矛盾. 过程中pos是升序的,所以如果任意连续两次操作,如果覆盖范围不重叠,则没事,否则需要判断原始字符串某一个后缀是否同时也是前缀.这个可以用next数组,z函数,后缀数组等计算. #include <iostream> #include <vector> #include…