题目链接 题目描述 Eddy has solved lots of problem involving calculating the number of coprime pairs within some range. This problem can be solved with inclusion-exclusion method. Eddy has implemented it lots of times. Someday, when he encounters another copr…
https://ac.nowcoder.com/acm/contest/883/D \(A(n)\) 是由n个1组成的一个整数. 第一步:把 \(A(n)\) 表示为 \(\frac{10^n-1}{9}\) (第一步都想不出来) 那么 \(A(n)=0\;mod\;p\) ,当9和p互质的时候,存在一个 \(inv9\) ,那么原式即 \((10^n-1)*inv9=0\;mod\;p\) 两边乘9,移项得 \(10^n=1\;mod\;p\) 由欧拉定理,得 \(10^n=10^{n\;mo…
一.题意 给定一个树状地图,每个树节点上有一只怪物,打死一只怪物的过程中将会消耗A点HP,打死之后将会获得B点HP.因为树状结构,所以每只怪物必须先打死父节点的怪兽之后在打死子节点的怪物.现在,给定每只怪兽的a,b和树状结构的联通关系,求初始HP最小的击败顺序. Little Q is fighting against scary monsters in the game ``Monster Hunter''. The battlefield consists of n intersection…
题目传送门 大致题意: 输入测试用例个数T,输入点的个数n(n为偶数),再分别输入n个不同的点的坐标,要求输出四个整数x1,y1,x2,y2,表示有一条经过点(x1,y1),(x2,y2)的直线将该二维平面内的点分成点数相等的两部分.(这条线不能通过平面内任何一点) sample input: 140 1-1 01 00 -1 sample output:(special judge) -1 999000000 1 -999000001 题解: 将这n个点以x为第一关键字y为第二关键字从小到大排…
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示这条直线 思路: 看见这题的第一反应是,先定一个相对这些点无限远的定点 然后取扫一遍,取一个其中一个点,找到一条能将这些点分成m个和m+1个点 最后将斜率微微倾斜,在直线上再取一点即可 最后疯狂WA,不知道是算法问题还是代码问题 听了大佬的讲解,发现自己真的蠢 最后的做法: 将这n个点按x坐标从小到…
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线经过的两个整点坐标. 分析1 在无穷远处选一个点(我选两个互质的质数),设为$(x, y)$,然后极角排序,然后取最中间两个点的中点,设为$(\frac{a}{2}, \frac{b}{2})$,由于题目要求整数点,通过求出直线方程,可以发现整数点$(3x - a, 3y - b)$也在直线上,于是…
Magic Line 题意 给出n(偶)个整点 整点范围1000,找出一条直线,把n个点分成均等的两部分 分析 因为都是整数,并且范围比较小,所以直接按x排序找到在中间那一部分,并且把中间那一部分的点按照左右点的分布情况,分成两部分即可.如何分呢,因为范围比较小,所以可以找一条斜率特别极限的直线把其分成两部分.这题的关键是要同意直线的形状,要么从左上到右下,要么从左下到右上,混淆就会WA. #include<bits/stdc++.h> using namespace std; #define…
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意:二维平面上有n个不同的点,构造一条直线把平面分成两个点数相同的部分. 题解:对这n个点以x为第一关键字,y为第二关键字从小到大排序.找到最中间两个点.然后以这两个点为界限,将平面划分为左右两个点数相同的区域.如图所示. 由于题目中给出点的坐标绝对值≤1000,而我们需要给出的点的坐标范围为1e9,因此必定可以找到这样一条很陡的直线. AC代码: #include <bits/stdc++.h>…
题意:给你一个N×N的矩阵,求最大的子矩阵 满足子矩阵中最大值和最小值之差小于等于m. 思路:这题是求满足条件的最大子矩阵,毫无疑问要遍历所有矩阵,并判断矩阵是某满足这个条件,那么我们大致只要解决两个问题就能搞定这题 (1)如何遍历所有矩阵 (2)如何判断此矩阵满足条件 我们先来看(2) 题目中说的是我们只要让这个矩阵中的最大值和最小值之差小于等于m就满足条件,那么问题就转化为如何快速求得二维矩阵的最值 这个时候就需要用到单调队列了,…
题目链接:http://poj.org/problem?id=2689 题目大意:输入两个数L和U(1<=L<U<=2 147 483 647),要找出两个相邻素数C1和C2(L<=C1<C2<=U)是距离最小的,如果相邻素数不止一对,选择最初的,还要找出两个相邻的素数D1,和D2是距离最大的(同样在有多对的情况下选择最初的) 其中L<U,L和U的差不超过1 000 000 输入样例: 2 1714 17 输出样例: 2,3 are closest, 7,11 a…