题意: 给出一个无向图,表示一种有机物质的结构式,问你这个有机物质是列表中的哪个. 题解: 判断图同构需要枚举全排列以对应点,但是此题中几乎只需要将点度数排序后一个一个比较,对于甲基位置再加个特判即可. #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef unsigned long long uLL; typedef long long ll; typedef pair<int, LL>…
链接:https://www.nowcoder.com/acm/contest/148/D来源:牛客网 Prefix Sum is a useful trick in data structure problems. For example, given an array A of length n and m queries. Each query gives an interval [l,r] and you need to calculate . How to solve this pro…
链接:https://www.nowcoder.com/acm/contest/148/A来源:牛客网 题目描述 Today, Rikka is going to learn how to use BIT to solve some simple data structure tasks. While studying, She finds there is a magic expression in the template of BIT. After searching for some l…
题意: 给出a数组的排列.求出字典序第k小的b数组的排列,满足1<=bi<=n,bi<bi+1,a[b[i]]<a[b[i+1]],m>0. 题解: 用树状数组倒着求出以每个数为首的递增子序列个数.若总的个数之和小于k则输出-1. 总的个数可能非常大而k<=1e18.所以要判下上界. 最后从1~n扫一遍.当前数大于上一个加入答案的数时,若以它为首的递增子序列个数小于k,则用k减去那个个数,否则将这个数加入答案并将k-1(即减去后面不再加数的情况). k = 0时跳出循环…
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示这条直线 思路: 看见这题的第一反应是,先定一个相对这些点无限远的定点 然后取扫一遍,取一个其中一个点,找到一条能将这些点分成m个和m+1个点 最后将斜率微微倾斜,在直线上再取一点即可 最后疯狂WA,不知道是算法问题还是代码问题 听了大佬的讲解,发现自己真的蠢 最后的做法: 将这n个点按x坐标从小到…
题意:给你一个3个数A, B, C问有多少对pair(i, j),1 <= i <= A, 1 <= j <= B, i AND j > C或 i XOR j < C.A, B, C范围为1e9. 思路:场上一看以为是推式子加什么筛做,无果.之后才知道是数位DP(以下思路来自学长的代码orz).首先,我们可以把问题转化为求i AND j < C并且 i XOR j > C的数对个数,用总数(A* B)减去这个数.我们在DP过程中设置几个变量:ok1, 之前已…
H - subsequence 2 题意 要你使用前\(m\)个小写字母构造一个长度为\(n\)的字符串 有\(m*(m-1)/2\)个限制条件: \(c_{1} .c_{2}. len\):表示除去其他非\(c_{1}.c_{2}\)之外的字母剩下的串长度为\(len\) \(s\):除去其他非\(c_{1}.c_{2}\)之外的字母剩下的字符串,长度为\(len\) 需要我们根据这个限制条件构造出原串,如果不存在输出\(-1\) 思路 我们可以发现题目给了两个字母之间的相对位置.比如\(aa…
题意: 给你一个“斐波那契”字符串数列,第n项由第n-1项和第n-2项拼接而成,输出某项的某位及其后10位. 题解: 递归求解即可. #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef unsigned long long uLL; typedef long long ll; typedef pair<int, LL>P; ; ; ; const LL lINF = 0x3f3f3f3…
题意: 韩信有若干个兵,给定你若干个模数和余数,再给你一个1e18以内的范围限制,求解同余方程组,如果无解,输出“他一定在撒谎”,如果最小解超出范围限制,输出“他可能在撒谎”,否则输出最小解 注意:不保证模数互质,也不保证“他可能在撒谎”的情况答案不爆long long 题解: 因为不保证模数互质,需要用excrt求解. 假算法:把excrt的板子翻译成python,然后一脸自闭地调程序 n=0 m=0 bi=[] ai=[] def ggcd(_m,_n): if _n == 0: _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)$也在直线上,于是…