Codeforces 938C - Constructing Tests】的更多相关文章

传送门:http://codeforces.com/contest/938/problem/C 给定两个正整数n,m(m≤n),对于一个n阶0-1方阵,其任意m阶子方阵中至少有一个元素“0”,则可以求解这个方阵中的“1”的最大数目.现求解这个问题的逆向问题:已知这个最大数目为X,求相应的n和m. 由原问题可以得到方程:$n^2-\left\lfloor\frac{n}{m}\right\rfloor^2=X\cdots(1)$,于是,对于给定的X,求解不定方程(1). 令$k=\left\lfl…
C. Constructing Tests time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Let's denote a m-free matrix as a binary (that is, consisting of only 1's and 0's) matrix such that every square submat…
大意: 定义m-free矩阵: 所有$m*m$的子矩阵至少有一个$0$的$01$矩阵. 定义一个函数$f(n,m)=n*n$的m-free矩阵最大$1$的个数. 给出$t$个询问, 每个询问给出$x$, 求输出$f(n,m)=x$的任意一组$(n,m)$. 显然可以得到$f(n,m)=n^2-\lfloor\frac{n}{m}\rfloor ^2$ #include <iostream> #include <sstream> #include <algorithm>…
C. Constructing Tests time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Let's denote a m-free matrix as a binary (that is, consisting of only 1's and 0's) matrix such that every square submat…
这场打了小号 A. Word Correction time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Victor tries to write his own text editor, with word correction included. However, the rules of word correction are…
[比赛链接] 点击打开链接 [题解] Problem A Word Correction[字符串] 不用多说了吧,字符串的基本操作 Problem B  Run for your prize[贪心] 我们可以将这个数轴一分为二,小于等于500000的由第一个人领,否则由第二个人领 Problem C Constructing tests[贪心][数学] 首先我们发现 : N^2 - (N / M)^2 = x (N/M向下取整) 然后我们算出N的上下界,发现: sqrt(x+1)<=N<=sq…
题意: 就是让构造一个直径为d的树  每个结点的度数不能超过k 解析: 先构造出一条直径为d的树枝 然后去遍历这条树枝上的每个点  为每个点在不超过度数和直径的条件下添加子嗣即可 #include <bits/stdc++.h> #define mem(a, b) memset(a, b, sizeof(a)) using namespace std; , INF = 0x7fffffff; int n, d, k; int cnt; struct node { int u, v; node(…
题意:有一堆数据,某些是样例数据(假设X个),某些是大数据(假设Y个),但这些数据文件的命名非常混乱.要你给它们一个一个地重命名,保证任意时刻没有重名文件的前提之下,使得样例数据命名为1~X,大数据命名为X+1~X+Y. 先把未使用的名字压进两个栈. 分为三轮:第一轮把占用了对方名字的样例数据以及占用了对方名字的大数据放进两个队列,然后不断反复尝试对这两个队列进行出队操作,每次将占用对方名字的改成一个未被使用的正确名字(从栈里取出),然后将占用的名字压进另一个栈.由于每个数据只会出队一次,所以是…
You are given three integers aa, bb and xx. Your task is to construct a binary string ssof length n=a+bn=a+b such that there are exactly aa zeroes, exactly bb ones and exactly xx indices ii (where 1≤i<n1≤i<n) such that si≠si+1si≠si+1. It is guarante…
题意:有一个长度为\(n\)元素均为\(0\)的序列,进行\(n\)次操作构造出一个新序列\(a\):每次选择最长的连续为\(0\)的区间\([l,r]\),使得第\(i\)次操作时,\(a[\frac{l+r}{2}]=i\)(下取整),求\(a\). 题解:刚开始我打算用归并分治的思想来写,但是发现左区间递归不到,然后就gg了. ​ 之后才发现这题用_优先队列_直接模拟就过了,题目就不说了,这儿讲一下优先队列. 优先队列与队列的区别在于,优先队列是按照某种优先级来决定谁在队头,C++默认它是…