B. Johnny and Grandmaster】的更多相关文章

原题链接:https://codeforc.es/problemset/problem/1361/B 题意:给你n个k求把pk分成两组数和的最小差值对1e9+7取余. 题解:运用贪心的思想取最大的数减去次大的数(先对数组按照降序排序),判断是否存在等于0的情况,如果存在那么最小差值为剩下数的和,如果不存在则答案为最大数减去其他数的和.(不存在小于0的情况) 坑点:1.不能用pow求幂(会超时),需要构造快速幂函数. 2.需要开另一个mod防止出现差值为1e9+7b倍数时产生的误差. 3.输入输出…
Codeforces 1103 C. Johnny Solving 题目大意: 有一张 \(n\) 个点 \(m\) 条边的简单无向图,每个点的度数至少为 \(3\) ,你需要构造出两种情况之一 一条长度至少为 \(\frac{n}{k}\) 的简单路径 \(k\) 个大小大于 \(3\) 且不为 \(3\) 的倍数的简单环,且满足每个环中至少有一个点只属于这个环. 如果都构造不出来则输出 \(-1\) . 解题思路: 首先必定可以构造出来,\(-1\) 就是用来迷惑你的. 从无向图生成树的角度…
题目链接:A.Johnny and Ancient Computer 题意: 给你两个数a,b.问你可不可以通过左移位运算或者右移位运算使得它们两个相等.可以的话输出操作次数,不可以输出-1 一次操作可以最多左移3次或者右移3次 题解: 首先找寻一下这两个数的二进制形式下最右边那个1在什么位置.然后看一下它们的差距是多少(设为x) 那么就让a,b中小的那个数左移x位.之后判断一下它们两个相等不相等就可以了 代码: 1 #include<stdio.h> 2 #include<algori…
O(n^3)的时间复杂度,改了半天交了二三十遍,TLE到死,实在没办法了…… 跪求指点!!! #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; ; << ; int mat[MAXN][MAXN]; int SubSum[MAXN][MAXN]; int tempS[MAXN]; int N, K; i…
大意: 无向图, 无重边自环, 每个点度数>=3, 要求完成下面任意一个任务 找一条结点数不少于n/k的简单路径 找k个简单环, 每个环结点数小于n/k, 且不为3的倍数, 且每个环有一个特殊点$x$, $x$只属于这一个环 任选一棵生成树, 若高度>=n/k, 直接完成任务1, 否则对于叶子数一定不少于k, 而叶子反向边数>=2, 一定可以构造出一个环 #include <iostream> #include <algorithm> #include <c…
题目简述:给定简单(无自环.无重边)连通无向图$G = (V, E), 1 \leq n = |V| \leq 2.5 \times 10^5, 1 \leq m = |E| \leq 5 \times 10^5$,保证任意节点的度数$\geq 3$.给定参数$1 \leq k \leq n$,要求完成以下任务之一: 1. 找到一条包含至少$\frac n k$个节点的简单路径. 2. 找到$k$个简单环,使得 2.1. 每个环包含少于$\frac n k$个节点,且包含的节点个数不得被$3$整…
题目传送门 https://codeforces.com/contest/1103/problem/C 题解 这个题还算一个有难度的不错的题目吧. 题目给出了两种回答方式: 找出一条长度 \(\geq \frac nk\) 的路径: 找出 \(k\) 个简单环,满足长度不是 \(3\) 的倍数,并且每个环至少存在一个点不在别的环中. 很显然题目并不是要你随便挑一种回答方式开始单独研究.最有可能的情况是两种回答方式可以替补. 如果我们随便作出原图的一棵生成树,如果最长的路径长度 \(\geq \f…
题目链接:https://codeforces.com/contest/1362/problem/D 题意 有一个 $n$ 点 $m$ 边的图,每个结点有一个从 $1 \sim n$ 的指定数字,每个结点染与它相邻的结点中最小的未染过的正整数,问是否存在某种顺序可以将所有结点染为指定数字,如果存在,输出染色顺序,否则输出 $-1$ . 题解 边数最多为 $5 \times 10^5$ 而不是 $n^2$,所以逐点 $bfs$ 的复杂度最大为 $10^6$,模拟即可. 代码 #include <b…
题目链接:https://codeforces.com/contest/1362/problem/C 题意 计算从 $0$ 到 $n$ 相邻的数二进制下共有多少位不同,考虑二进制下的前导 $0$ .($1≤n≤10^{18}$) 题解 逐位考虑.因为值是连续的,所以从右至左第 $i$ 位的 $01$ 周期为 $2^i$ .计算出完整的 $01$ 周期个数 $t$,每个完整的周期内有一对 $01$ 相邻,相邻的完整周期间共有 $t - 1$ 对 $01$ 相邻,然后考虑多余的周期长度,如果之前有完…
题目链接:https://codeforces.com/contest/1362/problem/B 题意 有一个大小及元素值均不超过 $1024$ 的正整数集合,求最小正整数 $k$,使得集合中的每个元素异或 $k$ 后得到的新集合与原集合相等,若这样的 $k$ 不存在输出 $-1$ . 题解 数据范围较小,枚举即可. 代码 #include <bits/stdc++.h> using namespace std; void solve() { int n; cin >> n;…