摘要:
https://codeforces.com/contest/1311/problem/D 本题题意:给出a,b,c三个数,a<=b<=c; 可以对三个数中任意一个进行+1或-1的操作; 问题:求出最少操作数使这些数满足:b整除a,c整除b 思路:题目中给出abc的范围只有1e4 所以我们可以通过枚 阅读全文
摘要:
https://www.luogu.com.cn/problem/P2146 题意:给出一棵树,然后有两种操作,安装与卸载; 安装就是,想要安装这个软件,就得安装这个软件之前的一个软件,即:他的父亲,他的父亲的父亲.... 卸载就是,想要卸载这个软件,就得把这个软件的儿子都卸载了才能卸载; 那么他具 阅读全文
摘要:
https://www.luogu.com.cn/problem/P2420 对于异或,就是将之前的求和的+号改为^ 即可 其他完全一样 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const 阅读全文
摘要:
https://www.luogu.com.cn/problem/P2590 模板题 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cstdio> 6 #de 阅读全文
摘要:
https://www.luogu.com.cn/problem/P2486 题意:求出一段路径的颜色段数量; 很明显路径通常通过树剖来解决; 我们在树剖之后,查询两点之间颜色段的数量的时候,对于不同的两个区间,我们先将答案都加起来, 然后假如这两点区间的连接处颜色相同,我们再将答案减1; 那么什么 阅读全文
摘要:
链接:https://ac.nowcoder.com/acm/contest/4010/F?&headNav=acm 这是一道树链剖分的题目; 很容易想到,我们在树剖后,对于操作1,直接单点修改; 对于答案查询,我们直接的时候,我们假设查询的点是3,那么我们在查询的时候可分为两部分; 第一部分:查找 阅读全文
摘要:
题目链接:https://nanti.jisuanke.com/t/A1995 题意:给出递推式,我们可以算出a【n】=n*n+n; 那么Sn=n*(n+1)(2*n+1)/6+n*(n+1)/2; 我们有这样一个容斥定理:区间中与i不互质的个数=(区间中i的每个质因素的倍数个数)-(区间中i的每两 阅读全文
摘要:
题意:给一个长度为n的序列,初始值为1~n; 对序列有以下两种操作; 1.查询[x,y]内与p互素的数的和; 2.修改第x数为c; 对于这道题,我们应该可以通过求【1,y】-【1,x-1】来得出答案; 我们先忽略操作2带来的影响,最后再通过暴力做法修改值即可(因为m范围只到1000,所以暴力不超时) 阅读全文
摘要:
当我们在两个相邻区间里求出最小后,这个最小不一定为最小,因为可能为两个区间内得数进行组合才得出得最小; 而这个时候如果我们暴力求两个区间内得数的情况的话,会超时,这个时候,我们已经算出了最小值dis 于是,我们从这两个区间的mid开始 向左向右延申长为dis,高为2dis的区间(我们就是将这个范围内 阅读全文
摘要:
题意:给你一个无向图,问图中有多少个符合条件的集合?条件为这个集合里面存在一个子集(大小>=3)为团或者都是孤立点。答案mod1e9+7; 根据 Ramsey定理,大于等于6个的集合,肯定存在一个子集的边都是红色或者都是蓝色,即为团还是为孤立点; 所以当n大于等于6的时候,所有的取6个或六个以上的子 阅读全文