思维题型/数论相关
THE END GAME
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #546 (Div. 2) C
InputCopy3 31 2 34 5 67 8 91 4 72 5 63 8 9OutputCopyYES#include<bits/stdc++.h>using namespace std;vector<int> A[1010];vector<int> B[1010];int main(){ int N, M; sc...原创 2019-03-20 19:13:07 · 107 阅读 · 0 评论 -
Trailing Loves (or L'oeufs?)
【题解】:题意是:给你一个n,b。然后问在b进制下,n!的末尾有多少个0.首先我们回顾一下,在10进制下面,n的阶乘末尾零的计算方法是:把10=2*5,然后2为因子的个数有:n/2+n/(2^2)+n/(2 ^3)……然后5为因子的个数有:n/5+n/(5^2)+n/(2 ^3)……其实这个题目就是照葫芦画瓢,把所有b的质因子分解出来,然后看看哪一个质因子最少即可。#include...转载 2019-02-24 10:25:07 · 143 阅读 · 0 评论 -
暑假集训日记——7.23(codeforce)
D. Beautiful Graph二分图+联通分支+快速幂…我是打算这么求得,但好像太麻烦了…#include <bits/stdc++.h>using namespace std;const int N = int(3e5) + 999;const int MOD = 998244353;int n, m;vector <int> g[N];in...原创 2019-07-27 13:41:14 · 112 阅读 · 0 评论 -
暑假集训日记——8.2
心血来潮整理一下,刚入学时候做的题威尔逊定理:(p-1)!%p=p-1哥德巴赫猜想:大于二的偶数可以分解为两个素数之和;大于七的奇数可以分解为三个素数之和;(是一定可以分解成三个素数之和,也有可能分解成两个)分解成两个必然有一个是2,其他就是至少三个。大素数的判定和质因子分解#include<stdio.h>#include<string.h>#inclu...原创 2019-08-02 22:48:22 · 109 阅读 · 0 评论 -
暑假集训日记——7.30(牛客)
【一】n的约数题解:2)然后很容易发现一个规律:如果两个数的约数个数相同,那么指数大小按递减顺序排列的话所获得的数更小。举个例子:6个约数:12=2^2 *3, 18=2 * 3^224个约数:360=2^3 *3^2 *5, 540=2^2 * 3^3 *5因为我们关注的就是寻找最大数目的约数,所以不需要考虑这个满足条件的数字具体是什么,所以直接考虑如何构造约数,使得原数字尽量小,...原创 2019-07-30 21:07:52 · 146 阅读 · 0 评论 -
暑假集训日记——7.20(GCD+codeforce)
A - Maximum GCD 0 与 7的 最大公约数是 7,范围错误的话会出错#include<bits/stdc++.h>#define mp make_pairusing namespace std;typedef long long ll;typedef pair<int, int> pii;typedef pair<ll, int> ...原创 2019-07-21 14:10:46 · 94 阅读 · 0 评论 -
暑假集训日记——7.29(牛客+数论)
DongDong坐飞机题解:分层图最短路,dis[ i ][ j ]记录下到达 i点 j次打折的最短路然后Dijkstra就可解了。注意:1.因为是分层的所以,一个节点会多次遍历所以不必标记2.输入输出用快读,或者scanf,居然显示的数据错误,而不是超时…卡在80%AC代码#include<bits/stdc++.h>#include<queue>#de...原创 2019-07-30 08:53:55 · 139 阅读 · 0 评论 -
暑假集训日记——7.18(codeforce)
C. Basketball Exercise题解:我也是醉了,我说我咋连一道简单dp的题都写不对…题意理解错了…写成了:单调递减子序列的最大和:#include<bits/stdc++.h>#define mp make_pairusing namespace std;typedef long long ll;typedef pair<int, int> ...原创 2019-07-20 10:04:17 · 164 阅读 · 0 评论 -
暑假集训日记——7.1/7.2(codeforce+分块的题)
emmmmmm,受最近集训的影响,看啥都像二分+前缀和…然后超时了题面:字母商店橱窗是一个字符串ss,由nn小写拉丁字母组成。正如名字所示,信件在商店里出售。信件从最左边到最右边一个一个地卖出去。任何客户只能从字符串ss中购买一些字母前缀。有m的朋友,他们中的第2个叫ti。他们每个人都计划估算如下的价值:如果s/他想要构建他/她所购买的字母的名称,他/她需要购买多少个字母(最短前缀的长度)...原创 2019-07-06 14:05:52 · 213 阅读 · 0 评论 -
暑假集训日记——7.9/7.10(scc习题+codeforce)
F. Simple Cycles Edges题解:要求求简单环,所以可以用tarjan求出点双连通分量,然后判断这个点双连通分量中的点的个数是否等于边的条数(有且仅有边的条数等于点的个数,才是个简单环),如果是的话把连通分量中的所有边存到一个数组中,最后找出所有边之后对边的编号进行排序输出就好了。#include<bits/stdc++.h>using namespace st...原创 2019-07-10 15:48:57 · 365 阅读 · 0 评论 -
暑假集训日记——7.4(codeforces)
B. Email from Polycarp题解:水题,练习一下STL,方便很多#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include<map&g...原创 2019-07-06 14:05:00 · 247 阅读 · 0 评论 -
暑假集训日记——7.3(codeforces)
C. System Administrator鲍勃在X公司找到了一份系统管理员的工作。他的第一个任务是在m双向直接连接的帮助下连接n台服务器,以便能够通过这些连接将数据从一台服务器传输到任何其他服务器。每个直接连接必须连接两个不同的服务器,每对服务器最多应该有一个直接连接。Y公司X公司的商业对手,让鲍勃一个他无法拒绝的条件:鲍勃被要求连接服务器以这样一种方式,当服务器索引v失败,其他两个服务器...原创 2019-07-06 14:05:27 · 127 阅读 · 0 评论 -
暑假集训日记——7.7(月赛+scc习题)
A - 迷宫城堡 题解:两两可达,就是判断一下这个图是否是一个强联通图,模板题。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;typedef pair<ll, int> pli;typedef pair<...原创 2019-07-08 18:31:15 · 408 阅读 · 0 评论 -
简简单单的数学题
快速幂+__int128__int128 g++编译器不给过,调试很费劲但判题没问题,能过#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include...转载 2019-05-29 17:47:45 · 352 阅读 · 0 评论 -
普通递归关系
注意:0 0的特判纠结好久…哎#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include<map>#include<iterator&g...原创 2019-05-29 16:41:01 · 544 阅读 · 1 评论 -
暑假集训日记——8.4( 点分治+康拓展开+组合数)
点分治详解:大佬的博客P3806 【模板】点分治1模板代码:#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define inf 999999999 int n,m,len=0,Size;struct node{int x,y,z,next...原创 2019-08-05 12:04:23 · 98 阅读 · 0 评论 -
暑假集训日记——7.31(牛客+codeforce)
C. MP3题解:离散化15分钟写完代码,发现卡在test 4,到比赛结束都没找出来错误,然后发现自己漏看了一个条件…然后改了一个数字,A了,emmmm,我能说啥呢。距离1700还有372分——距离暑假结束还有30天#include<bits/stdc++.h>#define mp make_pairusing namespace std;typedef long lo...原创 2019-08-01 09:23:12 · 133 阅读 · 0 评论 -
暑假集训日记——8.15(codeforce)
题意:从坐标(0,0)(0, 0)(0,0)到(n,0)(n, 0)(n,0)的折线,这条折线每向右延伸一个单位长度,高度要么不变,要么+1+1+1,要么−1-1−1,已知 nnn,求这种折线种数题解:卡特兰数+组合数如果只能上下就是卡特兰数,但还存在平移操作。原式: ans[k]=C2kk×Cn2kk+1ans[k]=\frac{C_{2k}^{k}\times C_{n}^{2k}}{...原创 2019-08-17 08:32:08 · 96 阅读 · 0 评论 -
暑假集训日记——8.12(codeforce)
E. Compress Words题意:AmugaeAmugaeAmugae有一个由n个单词组成的句子。他想把这个句子压缩成一个词。AmugaeAmugaeAmugae不喜欢重复,所以当他将两个单词合并成一个单词时,他删除第二个单词中与第一个单词后缀重合的最长前缀。例如,他将samplesamplesample和pleasepleaseplease合并成sampleasesampleasesa...原创 2019-08-13 14:20:18 · 131 阅读 · 0 评论 -
暑假集训日记——8.9(codeforce)
C. Ayoub and Lost Array题意:给出一个数组的长度以及数组中元素的取值范围,问:有多少种方案使得数组的元素的总和为三的倍数。题解:动态规划dp[i][j]dp[i][j]dp[i][j]表示 由 iii个数的和余 jjj的组合有多少组dp[i][0]=dp[i−1][0]∗a+dp[i−1][1]∗c+dp[i−1][2]∗bdp[i][0]=dp[i-1][0]*a...原创 2019-08-11 20:21:08 · 140 阅读 · 0 评论 -
暑假集训日记——8.14(codeforce)
E. 3-cycles题意:使得图中不存在长度为3的环,求满足条件的最多边的数目题解:二部图的任意两点的最小环长度大于3#include<bits/stdc++.h>#define mp make_pair#define se second#define fi firstusing namespace std;typedef long long ll;typed...原创 2019-08-15 14:27:34 · 160 阅读 · 0 评论 -
卡特兰数和斯特林数
1.卡特兰数:一种常用的组合数,前几项是1,1,2,5,14,42…..1,1,2,5,14,42…..1,1,2,5,14,42…..递推公式:f(n)=∑i=0n−1f(i)×f(n−i−1)f(n)=\sum_{i=0}^{n-1}f(i)\times f(n-i-1)f(n)=∑i=0n−1f(i)×f(n−i−1) ,f(0)=1,f(1)=1,f(0)=1,f(1)=1,f(0...原创 2019-08-11 15:52:02 · 265 阅读 · 0 评论 -
暑假集训日记——8.18(codeforce)
E - 染色 题意:给定一棵有 nnn个节点的无根树和 mmm个操作,操作有 222类:1、将节点 aaa到节点 bbb路径上所有点都染成颜色 ccc2、询问节点 aaa到节点 bbb路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”“112221”“112221”由3段组成:“11”、“222”和“1”“11”、“222”和“1”“11”、“222”和“1”。请你写一...原创 2019-08-20 08:42:27 · 141 阅读 · 0 评论 -
暑假集训日记——8.6(codeforce)
D. Suitable Replacement题意:把 S串中的?转化为小写字母,使得字符串 S拥有最多的 字符串T的不相交字串,(S中的字母可以互换顺序)题解:贪心#include<bits/stdc++.h>#define mp make_pairusing namespace std;typedef long long ll;typedef pair<int...原创 2019-08-07 12:15:56 · 132 阅读 · 0 评论 -
暑假集训日记——8.13(codeforce)
A. Integer Sequence Dividing题意:给定一个整数序列1 2…n。你必须把它分成两个集合A和B每个元素都属于一个集合,|sum(A)−sum(B)| is minimum possible.题解:这种一看题面不是很难, 再一看复杂度1e9的题, 一定是规律题…哎#include<bits/stdc++.h>#define mp make_pair#...原创 2019-08-14 12:41:05 · 148 阅读 · 0 评论 -
暑假集训日记——8.8(容斥+概率)
E - Card Collector 题意:每包里面最多只有一张卡片(可能没有),要集齐n张不同的卡片(1<=n<=20)问集齐nnn张卡片要买的包数期望题解:设集齐第 iii张的天数需要 dididi天求解买 nnn张卡片需要的包数:d1Ud2Ud3...Udnd1 U d2 U d3 ... U dnd1Ud2Ud3...Udn-111,所以容斥公式求解概率和期望:(...原创 2019-08-09 01:36:59 · 139 阅读 · 0 评论 -
暑假集训日记——7.28(牛客)
筱玛爱阅读题解:状压dp1.书的标签随便贴,所以从大到小排序2.dp[i]表示买前 i 本可以优惠的最大价格状态转移方程 dp[i]=max(dp[i],dp[j]+a[cnt[i]]); 表示新买了这本书是否可以凑够一个优惠方案,并且不和之前的优惠方案相冲突dp好难…#include<bits/stdc++.h>using namespace std;const in...原创 2019-07-29 10:13:55 · 105 阅读 · 0 评论 -
暑假集训日记——8.1(牛客+codeforce)
容斥原理的应用正难则反,合取式 的情况不好求,就转化为求解 总数-容斥小y的质数题解:容斥原理#include<bits/stdc++.h>#define mp make_pairusing namespace std;typedef long long ll;typedef pair<int, int> pii;typedef pair<ll,...原创 2019-08-01 16:56:30 · 164 阅读 · 0 评论 -
暑假集训日记——7.24(牛客+一堆算法)
筱玛爱游戏题解:这题需要一些线性代数的知识每个数可以看做一个 向量(即每一维都是 0 或 1 的向量)这时数的异或就相当于向量的加法那么集合存在一个非空子集异或和为0即为这个向量组线性相关那么两个人在博弈过程中每一步都需保证向量组线性无关那么这个向量组最大的大小即为所有向量的秩而由线性代数基本结论,若当前选出的向量线性空间维数小于所有向量的秩,一定能加入一个另外的向量,使得向量组仍...原创 2019-07-28 13:46:15 · 95 阅读 · 0 评论 -
C. Problem for Nazar
题解:At first let’s simplify the problem. Let’s denote as f(x) function that returns sum of the elements that are on positions from 1 to x inclusive.How to implement function f(x)?To find the answer...原创 2019-06-01 14:28:09 · 127 阅读 · 0 评论 -
B. Dima and a Bad XOR
题解:Let’s take the first number in each array.Then, if we have current XOR strictly greater than zero we can output an answer.And if there is some array, such that it contains at least two distinct...原创 2019-06-01 13:41:02 · 87 阅读 · 0 评论 -
高斯消元法
kuangbin大神的板子:#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>#include<math.h>using namespace std;const int MAXN=50;int a[MAXN][MAXN];//增广...转载 2019-04-29 16:49:21 · 161 阅读 · 0 评论 -
Triangle
斐波那契数列和三角形应用:http://acm.hdu.edu.cn/showproblem.php?pid=6512构不成三角形的最坏情况就是构成一个斐波那契数列任意三个数无法构成三角形注意点:斐波那契前45项左右就爆了int前85项左右就爆了long long#include<algorithm>#include<cstdio>#include<...转载 2019-04-20 09:56:41 · 79 阅读 · 0 评论 -
相邻的糖果
https://www.nowcoder.com/acm/contest/134/H题解:利用滑动窗口的想法,从左到右扫描,优先吃掉右边的。从右边开始吃是因为右边影响的区域最多,如果从右边开始吃的话一定比从左边开始吃的操作要少#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef...转载 2019-05-04 15:43:10 · 174 阅读 · 0 评论 -
等价串
https://www.nowcoder.com/acm/contest/134/F#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;typedef vector<v...转载 2019-05-03 18:07:22 · 150 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2) D
题解:就是从小到大对(ai-bi)进行排序#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;const int mod = 1e9 + 7;const int N = 1e5 + 10;struct node{ int a,b...转载 2019-04-28 17:24:54 · 105 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) E
codeblock 不支持c++11,auto一直编译不过后来改了半天编译器#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include<map>...原创 2019-04-18 18:31:26 · 83 阅读 · 0 评论 -
分宿舍
http://acm.hdu.edu.cn/showproblem.php?pid=6492贪心枚举情侣房间数,然后我们考虑剩下的人的情况分情况讨论d1和d2,(注意尽量不空房间会节省资金)一开始认为可以直接%6取余,分情况讨论余数的分配,但后来发现仍然有情况没有考虑到,比如有七个人,2,2,3的这种情况就无法考虑到题解说暴力也可以过题,but不会暴力,只会TLE#include &l...转载 2019-04-18 01:14:16 · 257 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) D
二分法#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include<vector>#include<string>using nam...原创 2019-04-17 19:56:16 · 85 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) C
暴力求解#include<algorithm>#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<set>#include<vector>#include<string>using na...原创 2019-04-17 18:40:34 · 170 阅读 · 0 评论