
笔记
文章平均质量分 51
胡 耀文
为需要速通互联网笔试面试的提供1V1算法辅导
展开
-
2023年8月初补题
补题原创 2023-08-06 20:26:06 · 429 阅读 · 0 评论 -
笛卡尔树1
笛卡尔树两道例题原创 2022-10-05 10:20:14 · 95 阅读 · 0 评论 -
abc247 E
很好的一道题,介绍三种解法原创 2022-06-18 20:46:59 · 114 阅读 · 0 评论 -
Go语言学习笔记bi站黑马程序员一天刷完
go学习原创 2022-05-23 12:53:20 · 616 阅读 · 2 评论 -
namomo div2
namomo div2原创 2022-03-04 02:18:35 · 353 阅读 · 0 评论 -
状态压缩dp总结
本文为了记录刷的状态压缩dp原创 2022-02-22 00:53:44 · 173 阅读 · 0 评论 -
【BZOJ4621】Tc605
传送门Description最初你有一个长度为 N 的数字序列 A。为了方便起见,序列 A 是一个排列。你可以操作最多 K 次。每一次操作你可以先选定一个 A 的一个子串,然后将这个子串的数字全部变成原来这个子串的最大值。问最终有几种可能的数字序列。答案对 1e9+7 取模。Input第一行两个数 N 和 K。第二行 N 个数,描述一个排列 A。N,K<=500,有6组数据N>100,有梯度Output输出一个数,表示答案在模域下的值。Sample Input3 23 1原创 2022-02-18 23:42:42 · 159 阅读 · 0 评论 -
2022寒假每日一题【C++,python,java,Go语言各写一遍巩固语言基础】
2022年Acwing寒假每日一题训练,我用C++,python,java,Go语言全部写一遍,巩固基础,方向不局限于全栈工程师,后期考虑读AI研究生,想把自己培养成一个全能型选手原创 2022-01-08 21:06:29 · 677 阅读 · 0 评论 -
牛客练习赛89
传送门A#include<bits/stdc++.h>using namespace std;#define int unsigned long longint n,k,s;vector<int>v;unordered_map<int,int>mp;signed main(){ cin>>n>>k>>s; for(int i=1;i<=k;i++){ int x; c原创 2021-10-07 13:51:40 · 1591 阅读 · 0 评论 -
2021/8/31(并查集pro
并查集proAcWing 145. 超市AcWing 237. 程序自动分析AcWing 145. 超市里有 N 件商品,每件商品都有利润 pi 和过期时间 di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数 N 开始,接下来输入 N 对 pi 和 di,分别代表第 i 件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。用一个原创 2021-09-17 02:23:28 · 121 阅读 · 0 评论 -
acwing第16周周赛
T1#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){ int T; cin >> T; while (T -- ) { string str; cin >> str; int a = 0, b = 0; for原创 2021-09-12 03:19:28 · 120 阅读 · 0 评论 -
算法基础课2021-8-24
#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 20000,M=2000000;int h[N], e[M], ne[M], idx;void add(int a, int b) // 添加一条边a->b{ e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;}int ma原创 2021-08-29 12:31:03 · 489 阅读 · 0 评论 -
算法进阶课first
算法进阶课第七章 基础算法第六章 搜索第七章 基础算法包含启发式合并、manacher算法、最小表示法、构造、打表等内容 梦幻布丁n个布丁,有m个颜色操作:op1:要把一个颜色的布丁全部变为另一种颜色op2:询问连续的颜色段个数#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 100010, M = 1000010原创 2021-08-28 16:59:19 · 351 阅读 · 0 评论 -
算法基础课2021-8-21
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int n;int st[10000]; int vis[10];typedef pair<int, int> PII;PII way[10];int path[10][10];int c[10][10];void dfs(int x){ if(x>n){原创 2021-08-22 22:35:18 · 513 阅读 · 0 评论 -
2021-08-01
Maximal submatrixDescriptionGiven a matrix of nn rows and mm columns,find the largest area submatrix which is non decreasing on each columnInputThe first line contains an integer T(1≤T≤10)T(1≤T≤10) representing the number of test cases.For each test c原创 2021-08-16 22:00:20 · 139 阅读 · 0 评论 -
2021-8-1刷完每日一题(暑假)
先记一下快读快写模板int read() { int x=0,f=1; char c=getchar(); while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();} while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); return x*f;}void write(int x) { if(x<0) putchar('-'原创 2021-08-04 09:21:24 · 125 阅读 · 0 评论 -
2021-8-4 acwing暑假每日一题(整理
3791. 解码题解3777. 砖块题解3776. 水果拼盘这道题就是考察线性规划,不过我用单纯形法写的这题解有O(n)的解法也有O(1)的3775. 数组补全这是一道环图题,蛮难的题解3784. 交换相邻元素题解AcWing 3785. 战舰这个题解有O(n^2)的解法,我的指针和yxc的都是O(n3)AcWing 3774. 亮灯时长–前缀和–c++/python3/java...原创 2021-08-04 09:18:29 · 165 阅读 · 0 评论 -
2021-8-2Codeforces Round #736
A#include <bits/stdc++.h>using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while(t--) { int p; cin >> p; cout << "2 " << p-1 << "\n"; } return 0;}Written by Agnima原创 2021-08-02 17:25:07 · 226 阅读 · 0 评论 -
2021-8-1(试除法,第k个除数
题目链接三种题解原创 2021-08-01 09:13:15 · 103 阅读 · 0 评论 -
2019 East Central North America(2021-07-22 12:00:00 至 2021-07-22 17:00:00 时长: 5小时 已有1026人报名
比赛链接A-Retribution!关键词:模拟,排序;思路:由于 的规模很小,只有 ,因此只需求出所有裁判到每个仓库的路径长度并排序,根据题意模拟即可。时间复杂度 。#include<bits/stdc++.h>#define x first#define y secondusing namespace std;const int N=1001;typedef pair<double,double>pdd;int n,m,p;pdd nn[N];pdd.原创 2021-08-01 08:46:27 · 673 阅读 · 0 评论 -
2021-07-31Mod, Or and Everything
先暴力打出来前100个然后找规律#include<bits/stdc++.h>using namespace std;#define int long longint T;int x;signed main(){ //cin>>T; for(int i=1;i<=100;i++){ x=i; int ans=0; for(int i=2;i<=x;i++)ans|=x%i; cou原创 2021-07-31 22:43:25 · 239 阅读 · 0 评论 -
求 (n mod 1)⊕(n mod 2)⊕.......⊕(n mod n)
题意:求 (n mod 1)⊕(n mod 2)⊕…⊕(n mod n)数据范围:n≤1e12#include<bits/stdc++.h>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef long long LL;LL n;bool f(LL a,LL b,LL c,LL n){ if (!a) return (((n+1)&(b/c))&1)>0; if原创 2021-07-31 22:26:31 · 281 阅读 · 0 评论 -
2021.7.30 Codeforces Round #723 (Div. 2)
A分析题意给一个数组,求该数组的一个排列,满足每一项不等于相邻两项的平均值。ExampleinputCopy331 2 3 4 5 62123 456 789 1016 9outputCopy3 1 4 2 5 6123 10 456 7899 6NoteIn the first testcase, array [3,1,4,2,5,6] works, as it’s a permutation of [1,2,3,4,5,6], and 3+42≠1, 1+22≠4, 4原创 2021-07-31 01:07:47 · 184 阅读 · 0 评论 -
Codeforces global round 15
b题#include<bits/stdc++.h>using namespace std;int n;int gold;int ans;int a[50010][6];bool check(int now,int t){ int ansnow=0; int anst=0; for(int i=1;i<=5;i++){ if(a[now][i]>a[t][i])anst++; else if(a[now][i]<原创 2021-07-30 17:35:22 · 143 阅读 · 0 评论 -
单纯形法cnmd
C-Cheese, If You Please关键词:线性规划;思路:令第 i 种商品的数量为 ,共 m 种商品。有 n 种原料,每种原料的数量为 w[i] ,第 j 种商品使用第 i 种原料的比例为 p[i][j] ,每种商品的单价为 t[j] 。可得如下约束条件:目标是最大化:可用单纯形法解线性规划。我们之前都是求最小花费且约束条件是大于现在这道题是求最大利润且约束条件是小于两者区别就在于pivot函数和b【】,c【】这两个数组n是方程个数,m是未知数x的个数1.目标最小化的时.原创 2021-07-29 20:27:00 · 652 阅读 · 0 评论 -
悬线法(棋盘制作+玉蟾宫
玉蟾宫棋盘制作OIwiki讲解原创 2021-07-29 15:07:02 · 133 阅读 · 0 评论 -
Atcoder gular round 123 c题(难度真的好大
#include<bits/stdc++.h>using namespace std;int digit[20];int t[20];long long x;int main(){ int T; cin>>T; while(T--){ cin>>x; int cnt=0; while(x)digit[++cnt]=x%10,x/=10; in://入口 bool check=1; ..原创 2021-07-29 01:35:12 · 251 阅读 · 0 评论 -
给a,b,c,d求a+b+c=d的方案数(前缀和差分的应用
A、Easy Equation题目大意:求x + y + z = k x+y+z=kx+y+z=k的方案数,输入为四个数可取的范围。前缀和差分。首先一看数据范围是1e6就不可能O ( n 2 ) O(n^2)O(n2)做,只能O ( n ) O(n)O(n)。之前做过一道简化版的题,是求x + y = z x+y=zx+y=z的方案数,用的好像是什么前缀和映射思想,我忘了,是CF上面的一次比赛题,但是我找不到了…这里是三个,所以把那个方法拓展一下即可。实际上用前缀和来解决思路特别简单,大致是一原创 2021-07-20 01:56:55 · 737 阅读 · 0 评论 -
acwing第8周周赛(哈希+图论
给定一个 n 个点 m 条边的有向强连通图。点的编号为 1∼n,边的长度均为 1。给定一条由点 s 到点 t 的简单路径 p1,p2,…,pk,其中 p1=s,pk=t。注意,这条路经不一定是从点 s 到点 t 的最短路径。现在,小明要沿着这条路径从点 s 走到点 t。在他的行进过程中,手机上的导航软件将持续为他导航,持续为他提供最短行进线路建议。当然,他并不一定会采纳这些建议,因为他一定会沿着之前给定的线路行进。设想一下,在行进中,导航软件的工作过程。首先,在点 s 处,导航软件会找到并显原创 2021-07-18 17:37:35 · 266 阅读 · 1 评论 -
acwing第七场周赛
第二题求第k个字符串3759. 第k个字符串题目提交记录讨论题解视频讲解给定两个整数 n 和 k。用 n−2 个 a 和 2 个 b 来构成一个字符串,则一共可以构成 n(n−1)2 个不同的字符串。将这 n(n−1)2 个字符串按照字典序进行排序。请输出排好序后,排在第 k 个的字符串。例如,当 n=5,k=2 时,共可以生成 10 个不同的字符串,按字典序排列如下:aaabbaababaabbaabaabababaabbaabaaabbaabababaabba原创 2021-07-17 01:03:14 · 121 阅读 · 1 评论 -
单调队列优化dp
输入一个长度为 n 的整数序列,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。注意: 子序列的长度至少是 1。输入格式第一行输入两个整数 n,m。第二行输入 n 个数,代表长度为 n 的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输出样例:7#include <cstring>#include <iostream>#i原创 2021-07-09 06:09:49 · 290 阅读 · 0 评论 -
区间dp(环形dp
将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。请编写一个程序,读入堆数 n 及每堆的石子数,并进行如下计算:选择一种合并石子的方案,使得做 n−1 次合并得分总和最大。选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。输入格式第一行包含整数 n,表示共有 n 堆石子。第二行包含 n 个整数,分别表示每堆石子的数量。输出格式输出共两行:第一行为合并得分总和最小值,第二行为合并得分总和最大原创 2021-07-09 05:08:29 · 496 阅读 · 2 评论 -
博弈论(取石子游戏)dp+分析
题目描述给定一个有 NN 个节点的有向无环图,图中某些节点上有棋子,两名玩家交替移动棋子。玩家每一步可将任意一颗棋子沿一条有向边移动到另一个点,无法移动者输掉游戏。对于给定的图和棋子初始位置,双方都会采取最优的行动,询问先手必胜还是先手必败。输入格式第一行,三个整数 N,M,KN,M,K,NN 表示图中节点总数,MM 表示图中边的条数,KK 表示棋子的个数。接下来 M 行,每行两个整数 X,YX,Y 表示有一条边从点 XX 出发指向点 YY。接下来一行,KK 个空格间隔的整数,表示初始时,棋子原创 2021-07-09 02:12:36 · 1659 阅读 · 0 评论 -
背包问题求方案数
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7 的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示 方案数 模 109+7 的结果。数据范围0&原创 2021-07-08 17:18:52 · 88 阅读 · 0 评论 -
字符串dp(Leedcode72 编辑距离
加深对dp的理解class Solution {public:int minn(int x,int y,int z){ return min(x,min(y,z)); } int minDistance(string word1, string word2) { int s1=word1.length(); int s2=word2.length(); if(s1*s2==0)return原创 2021-07-07 16:38:17 · 76 阅读 · 0 评论 -
scnu校赛去年题
求两个数的公约数有多少个#include<iostream>#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ return b?gcd(b,a%b):a;}int main(){ int T,a,b; cin>>T; while(T--){ int ans=1; cin>>a>>b; int g=gcd(a,b); if(g==1){原创 2021-07-06 02:19:10 · 256 阅读 · 1 评论 -
单调队列优化dp
题目描述给你一个整数数组 nums 和一个整数 k ,请你返回「非空」子序列元素和的最大值,子序列需要满足:子序列中每两个「相邻」的整数 nums[i] 和 nums[j],它们在原数组中的下标 i 和 j 满足 i < j 且 j - i <= k 。数组的子序列定义为:将数组中的若干个数字删除(可以删除 0 个数字),剩下的数字按照原本的顺序排布。示例 1输入:nums = [10,2,-10,5,20], k = 2输出:37解释:子序列为 [10, 2, 5, 20] 。1原创 2021-07-05 22:30:06 · 150 阅读 · 0 评论 -
传纸条dp(两条路一起走,从4维优化到3维
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1),小轩坐在矩阵的右下角,坐标 (m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回复。班里每原创 2021-07-05 02:38:41 · 273 阅读 · 0 评论 -
acwing第二场周赛(堆优化版Dj+最短路径树
给定一个整数 n,请你求出三元一次方程 3x+5y+7z=n 的一组非负整数解。要求:x≥0,y≥0,z≥0如果解不唯一,则输出 x,y,z 字典序最小的解。输入格式第一行包含一个整数 T,表示共有 T 组测试数据。每组数据占一行,包含一个整数 n。输出格式每组数据输出一行结果,如果无解则输出 −1,否则输出 x,y,z,整数之间单个空格隔开。数据范围对于前三个测试点,1≤n≤100。对于全部测试点,1≤T≤1000,1≤n≤1000。我写的三重循环代码:#include <原创 2021-07-05 01:53:00 · 214 阅读 · 0 评论 -
acwing第6周周赛
给定一个由 n 个点和 m 条边构成的无向连通图。我们希望通过一系列操作将其变为一个完全图(即每对不同的顶点之间都恰有一条边相连)。每次操作时,可以选择其中一个点,找到所有和它直接相连的点,使这些点两两之间连边(若两点之间已经存在边,则无需重复连接)。请问,至少多少次操作以后,可以将整个图变为一个完全图?输入格式第一行包含两个整数 n,m。接下来 m 行,每行包含两个整数 u,v,表示点 u 和点 v 之间存在一条边。所有点编号 1∼n。输出格式第一行输出最少操作次数。第二行输出每次操.原创 2021-07-04 04:19:44 · 300 阅读 · 3 评论