
基础算法
基础算法
林林亓
爱吃扒鸡
展开
-
Codeforces Round #618 (Div. 2)(A~E)
再写题解前,首先得感谢一波AtCode的出题人成功浪费我一上午时间…最后还是不会(Almost Everywhere Zero),感谢哪位大佬赐教…AB就没有没有什么可说的了,看完题直接写就行!A. Non-zero#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e...原创 2020-02-10 18:48:21 · 413 阅读 · 0 评论 -
Educational Codeforces Round 82 (Rated for Div. 2)(A~D)
唉,有点可惜,感觉D题能做出来,可惜时间有点不够了…先写三个题的题解吧,剩下的慢慢补。A. Erasing ZeroesA就没什么好说的了,统计出最左和最右的位置看一下中间有多少0就行。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100010,mod=1e9+...原创 2020-02-13 10:09:50 · 2522 阅读 · 5 评论 -
Educational Codeforces Round 83 (Rated for Div. 2)
总体来说菜得很…D题有点思路但是实现不了。。。Two Regular Polygons#include<bits/stdc++.h>using namespace std;typedef long long ll;int t,n,m;int main(){ cin>>t; while(t--) { cin>>n>>m; i...原创 2020-03-10 20:20:58 · 148 阅读 · 1 评论 -
Codeforces Round #616 (Div. 2)
本来打算写区间DP的,结果一想到昨天晚上的CF…还是先补一下题,安慰一下自己受伤的心灵…A. Even But Not Even感觉也就A题友善…题意:一串数字,去掉几个数字,让这个串不能被2整除但是各个位的和可以被2整除。思路也简单直接看代码吧…#include<bits/stdc++.h>using namespace std;typedef long long ll...原创 2020-02-03 12:17:17 · 149 阅读 · 2 评论 -
Codeforces Round #630 (Div. 2)
D. Walk on MatrixD 他的错误dp是因为&过程中的最大值不一定能使后面的&操作最大要使最优解与他输出的差值为k,感觉两个值分别等 k和0是比较好构造吧,所以我的目的是使最优解为k,而dp输出0,假设点[n,m]位置为k,为方便构造减少分支情况就把所有情况都从一个方向来,就令[n-1,m]为0,这个方向一定为0。接下来就是使 dp[n][m-1]&k 等...原创 2020-04-01 20:15:21 · 226 阅读 · 0 评论 -
Codeforces Round #622 (Div. 2)
C2. Skyscrapers (hard version)C c1和c2的题意是一样的,只是数据范围不同,已知一个数组m,让你构造一个数组a是的任意ai<=mi,而且任意j<i<k不能有aj>ai<ak(ijk不一定相邻)就是是这个数组是单峰的,在最高点两边是单调下降的。而且数组的和得最大我们需要假设以每个点是最高点来计算这时的数组的和取最大的情况,c1可以直...原创 2020-02-25 20:07:40 · 209 阅读 · 0 评论 -
2019CCPC-江西省赛(重现赛)- 感谢南昌大学
先来简单地说一这套题我的收获:1.再也不想使用cin和cout了,D题当时关闭同流后,用的cin,结果还是超时,下来后把cin换成scanf后,A了。所以就是还是scanf和printf好用,虽然敲的麻烦但是好用!2.最近一段时间得好好学习DP,这套题不暴力就DP…阔是我的DP学的是真的差3.强制类型转换有精度损失A–CotreeB–MathC - Trap D - Wave E ...原创 2019-11-11 22:41:58 · 352 阅读 · 2 评论 -
CodeForces #575 div3
A. Three Piles of CandiesB. Odd Sum SegmentsC. Robot BreakoutD1. RGB Substring (easy version)D2. RGB Substring (hard version)E. Connected Component on a ChessboardF. K-th Path原创 2019-11-15 17:45:26 · 419 阅读 · 0 评论 -
Codeforces Round #634 (Div. 3)
A. Candies and Two Sisters姐姐和妹妹分n颗糖,姐姐必须比妹妹的少,问有几种情况,必须每人至少有一颗//答案:(n-1)/2B. Construct the String有n,a,b,长度是n的字符串,构造一个长度为n的字符串,每a个字符串,都有b个不同字母,输出其中一个。思路:直接按照(i%b+‘a’))构造就行#include <bits/stdc+...原创 2020-04-14 09:04:50 · 243 阅读 · 5 评论 -
Codeforces Round #615 (Div. 3)
怎么说呢,总之Div3还是蛮有意思的吧!Collecting Coins#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int T;cin&g...原创 2020-01-23 16:07:07 · 160 阅读 · 0 评论 -
Codeforces Round #620 (Div. 2)
心态崩了丫…一个小时A出ABC,然后就WA了一小时的D…A. Two Rabbits#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int> pii;const int N=1e6+10; vector<pair<int,strin...原创 2020-02-15 23:14:07 · 335 阅读 · 0 评论 -
Codeforces Round #619 (Div. 2)(A~D)
A. Three Strings#include<bits/stdc++.h>using namespace std;const int N=100010;int main(){ string a,b,c; int t; cin>>t; while(t--) { cin>>a>>b>>c; bool flag=...原创 2020-02-14 11:02:43 · 462 阅读 · 0 评论 -
personal-training 2
Kefa and ParkComplete TripartiteShortest CycleAlex and a RhombusNick and ArrayValeriy and DequeCircle MetroPairsIncreasing by Modulo特别神奇的二分…真的是想不到…果然菜是万恶之源啊!!!#include<bits/stdc++.h>u...原创 2019-11-28 22:46:54 · 130 阅读 · 0 评论 -
Educational Codeforces Round 81 (Rated for Div. 2)
由于智商的原因,做题的时候的体验感真的超差…A. Display The Number思路:就是看看里面n有多少个2,然后最后判断n%2的值,如果是0就输出n/2个1,如果是1就输出1个7和n/2-1个1。#include<iostream>using namespace std; int main(){ int t,n; cin>>t; for(int...原创 2020-01-30 12:47:08 · 117 阅读 · 2 评论 -
Codeforces Round #617 (Div. 3)(A~E2)
真个人生都是灰色了,大早上的让hack一道题…A. Array with Odd Sum水题,直接看代码吧。#include<iostream>using namespace std;const int N = 2500;int a[N];int t,n;int main(){ cin>>t; while(t--) { cin>&...原创 2020-02-05 14:20:59 · 186 阅读 · 0 评论 -
personal training
EnginesConsecutive Integers AtCoder - 5037ModSum AtCoder - 4873Shortest Path on a Line AtCoder - 5635 Counting of Trees AtCoder - 5633 Monsters Battle Royale AtCoder - 4297Powerful Discount Ti...原创 2019-11-19 12:47:41 · 348 阅读 · 2 评论 -
拓展:优先队列+pair+二维map(6)
优先队列本来打算自己写的,但是有人已经写了,所以大家直接看这篇吧!看这里,点这里优先队列在稍微高级的题里面基本都会用到,所以建议读者认真学。pair看这里,点这里pair的基本用法得会,虽然现在还用不到,其实也能用到,就像STL容器里的map和pair。更重要的是,在以后图论的存图中,pair会频繁的用到,所以读者还是得好好学。...原创 2019-09-04 10:14:53 · 622 阅读 · 0 评论 -
拓展:单调栈
传送门:单调栈板子:#include<iostream>#include<algorithm>#include<stack>using namespace std;const int N=100010;stack<int> st;int main(){ ios::sync_with_stdio(false); int...原创 2019-09-26 08:52:50 · 121 阅读 · 0 评论 -
ACM输入输出挂
写这篇博客不为什么,就是是为了纪念一下我复杂得心情!!!原创 2019-12-07 18:48:49 · 220 阅读 · 0 评论 -
大数的加减乘除
加法:#include<iostream>#include<vector>using namespace std;vector<int> add(vector<int> &A,vector<int> &B) if(A.size()<B.size()) return add(B,A); vect...原创 2019-11-19 22:00:03 · 127 阅读 · 0 评论 -
感谢那些分享的人
真的是感动,今天翻到一些博客,写的是真的好,真的是感谢!!!顺便我也在此记录顺便为大家分享一波。2020 我把大学四年ACM模板分享了出来【总结】 ACMer一定要来看!【ACM刷题专题】这个假期一起来刷题把,刷完冲击区域赛,刷完拿不到奖随便打!...原创 2020-02-08 15:38:16 · 345 阅读 · 0 评论 -
树状数组
放一个简单的板子记录一下int tr[N];int a[N];int n; int lowbit(int x){ return x&(-x);} void add(int x,int c) //x的位置+c{ for(int i=x;i<=n;i+=lowbit(i)) tr[i]+=c; } int sum(int x)//1~x的和{ int res=0; for(int i=x;i;i-=lowbit(i)) { res+=tr[i];原创 2020-07-28 10:39:57 · 117 阅读 · 0 评论 -
快速幂(3)
快速幂快速幂就是求A的B次方,直接乘起来一般超时,所以这里简绍快速幂算法先来板子:int p(int a,int b,int c){ int ans=1; a=a%c; while(b>0) { if(b&1) ans=ans*a%c; b>>=1; a=a*a%c; } return ans;}再来一个板子题:HDU - 2...原创 2019-09-02 13:38:40 · 189 阅读 · 0 评论 -
矩阵计算器+求线性代数n阶行列式代码
算的实在是心烦,上网找了一篇大佬的代码真的是牛逼,附:大佬博客#include <malloc.h>#include <stdio.h>#include <stdlib.h>//包含的头文件不解释#define bool int //因为标准c里边没有bool类型才这么做#define false 0#define true 1//定义...原创 2020-03-01 10:02:37 · 1594 阅读 · 0 评论 -
GCD(1)
GCDGCD板子:int gcd(int a,int b) { return b? gcd(b,a%b):a; }原创 2019-09-02 09:25:21 · 194 阅读 · 0 评论 -
素数,分解质因数, 约数,扩展欧几里得
//判断一个数是不是素数bool is_prime(int n){ if(n<2) return false; for(int i=2;i<=n/i;i++) { if(n%i==0) return false; } return true;}//判断一堆数是不是素数int prim[N]; ...原创 2020-02-13 22:33:26 · 422 阅读 · 0 评论 -
素数(2)
素数随着对数学的学习,感觉素数是最伟大的数,在这里将介绍一些最最最简单的素数算法。先来一个板子:int sushu(int n){ int num,i,flag = 0; num = sqrt(n); for(i=2;i<=num;i++) { if(n%i==0) { flag = 1; ...原创 2019-09-02 13:29:05 · 213 阅读 · 0 评论 -
博弈论(2)
上篇博客简单的介绍了一些经典的博弈,这篇继续写一些博弈问题。移动棋子游戏这个是一个应用SG函数的板子题.#include <bits/stdc++.h>using namespace std;const int N=2010,M=6010;int n,m,k,a,b,x;vector<int> ve[N];int sg[N];int SG(int u){ if(sg[u]!=-1) return sg[u]; set<int&原创 2020-05-25 09:54:36 · 383 阅读 · 0 评论 -
欧拉函数+欧拉定理
Visible Lattice Points 写这篇博客是因为上面那个题,人家是欧拉函数,看我这贪心一下午…定义:欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示。例如φ(6)=2.特殊的,φ(1)=1。求法:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有质因数,x是不为0的整数.证明:容斥原理...原创 2020-02-19 15:30:47 · 337 阅读 · 0 评论 -
求组合数总结
Educational Codeforces Round 83 (Rated for Div. 2)的D题所用到的Lucas定理,小编看了多篇博文后总结了一下,他其实是求组合数的一种方法,求组合数总共有以下几种方法。1.当数据范围较小时,差不多1000左右,直接用递归打表求,这里用到原理就是从n个球取m个球,相当于(取第n个,然后从前n-1个再取m-1个 + 不取第n个,从前n-1个取m...原创 2020-03-11 15:29:52 · 194 阅读 · 1 评论 -
博弈论(1)
博弈原创 2019-10-22 15:15:08 · 159 阅读 · 0 评论 -
动态规划(4)-------计数类DP
整数划分其实小编看到这个题的第一个想法是完全背包…写了个二十分钟还真的A了。大家如果想了解,下面给出代码,具体的解释看动态规划(1)的完全背包就行。这里先给写计数类DP,毕竟这个才是今天的主角。...原创 2020-02-06 18:24:12 · 235 阅读 · 2 评论 -
动态规划(3)-------区间DP
补了俩天,总算把线性DP写了一半,剩下的等抽个时间慢慢写。区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。(个人觉得所有的DP都是很美的暴力枚举…)...原创 2020-02-03 11:54:37 · 158 阅读 · 0 评论 -
动态规划(2)------- 线性DP
上篇讲了背包问题算小小的入个门,这篇为大家浅谈一下线性DP的一些板子题,帮助大家理解一下动态规划。板子传送门要找到整个数字三角形的最大值,我们可以描述为去找从三角形第一行第一列(a[1][1])到三角形最后一行第?列(a[n][j]),这里用问号表示我们不知道最大值具体在哪里。我们以从第一行第一列走到第i行第j列来为例,能够走到 a[i][j] 的位置只有上面 a[i-1][j] 和左上角a...原创 2020-01-27 20:48:17 · 224 阅读 · 0 评论 -
动态规划(6)-------状态压缩DP
蒙德里安的梦想原创 2020-02-07 21:25:51 · 168 阅读 · 0 评论 -
动态规划(5)-------数位统计DP
真的是羡慕那些高智商的人,看了好多博客才有一丝丝的感觉。老规矩,还是看y总的网站,感觉里面有的的题解写的真的是nice!计数问题虽然暴力也能做,但是这个数据范围太大了…所以直接放弃暴力…...原创 2020-02-07 21:23:53 · 256 阅读 · 0 评论 -
动态规划(1)-------浅谈四种背包
在让CF的动态规划折磨了小半年后,借着这个寒假,决定重新学习动态规划,这篇博客就给大家介绍一些简单的而且比较经典的入门动态规划问题——背包问题。 背包有九讲,这里我为大家浅谈四讲。01背包完全背包多重背包分组背包...原创 2020-01-27 09:10:29 · 214 阅读 · 0 评论 -
动态规划(7)-------树形DP
昨天本来就能写的,结果写了俩个题写了四五个小时,于是乎拖到今天了。没有上司的舞会这个题就很好写了,不像状态压缩,真的是难理解…大佬博客f[u][0]表示从以U为根节点,不选u的方案。f[u][1]表示从以U为根节点,选u的方案。所以f[u][0]=求和max(f[si][0],f[si][1])i是遍历下一层的子节点f[u][0]=求和f[si][0] i是遍历下一层的子节点#i...原创 2020-02-12 15:08:18 · 285 阅读 · 0 评论 -
矩阵快速幂(14)
矩阵快速幂先说明一下:看到矩阵快速幂,我先想到的是快速幂,后来感觉差不多。不会快速幂的可以先看一下这篇:快速幂废话不多说,直接上板子:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=10000; //先不用管这个,一做题就明白了int f=2;struct n...原创 2019-09-20 18:10:57 · 168 阅读 · 0 评论 -
Tarjan算法求强连通分量
dfu[u] 表示遍历到u的时间戳low[u] 从u走,所能遍历到最小的时间戳假如u是其所在的强连通分量的最高点,则dfu[u]==low[u]原创 2020-05-18 13:58:20 · 206 阅读 · 2 评论