03 2022 档案
摘要:##题意: 定义一个前缀最大数组的概念,如{5,4,3,6,1,2},覆盖后变为{5,5,5,6,6,6}(从前往后大的覆盖小的) 得到的不同数的个数为当前排列的p值。 给出n和n个p值,问是否存在这种排列 ##思路: 6 1 1 2 1 2 2 2 2 6 1 2 4 6 3 5 6 2 3 1
阅读全文
摘要:##题意: 把带有RGB的字符串修改为相同字符串隔三个出现的情况所需要的最小修改次数以及结果 ##思路: 我们可以把范围缩小到前三个位置,那么情况只有6种 RGB RBG BGR BRG GRB GBR 然后注意枚举修改次数 ##小技巧: 使用string 数组存情况,用 a[i]==s[i%3]进
阅读全文
摘要:##题意: 两个人在矩形上修路,只能修矩形。给出路n*m,给出路的每次修路的最大面积s,最后修完路的获胜 ##思路 先把二维压缩成一维,如果每次把中心区域修完,然后学着对方修,最后一定留下位置给修完中心区域的人 然后我们扩展到二维的情况,类似。 ##代码 #include<bits/stdc++.h
阅读全文
摘要:广搜,我们只关心从s到f的路径,无论长短 ##题意: 一个房间被分为n*m个空间,空间由s,f,‘#’,‘.’组成,只能走‘.’,可以重复走某一个点,走列温度升高1,走行温度降低1,若不能从s到f则输出-1,可以则输出初始温度和结尾温度的差值(初始为0). ##思路 如果能走到,答案应该是两点🔺x
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/problem/230728 来源:牛客网 ##题目描述 橘猫忍要爆炸了!!!!!!!!!!!!!!!! 你必须立刻前往Antinomy提供的安全区进行躲避!!!!!!!!!!!!! 橘猫忍一共爆炸 \mathit tt 次,且每次都是在
阅读全文
摘要:这题是离线,相对好模拟 题意: 一个公司的管理为树状结构 有两种发放钱的方式。 单个人的奖金 对单个人以及所有上级发放奖金 有两个询问的方式 询问单个人的奖金 询问下属的奖金加上自己的奖金 思路: 用一个二维数组earn[N][3]来储存 第一种方式获得的、第二种方式得到的(用于向上继承)、下属的奖
阅读全文
摘要:##题目: ##思路: ###读取:我们采用 getline(cin,s)来 观察题目发现,每个}的上一行的最后是没有","的,我们读取的时候补上 这里有坑:当用读入第二行的2时,我们需要用一个getline把整行读掉 ###输出: 我们采用字符串排序的方式把所有的对象标准化。 然后分析作者这个对象
阅读全文
摘要:题意: 给出两串有相同数字的序列,连接各个相同的数字,求出他们交叉的个数 思路: 深入理解后即:把一串序列转化为规定的序列,需要的交换次数 本来想用冒泡求交换次数,但时间肯定超。 经过资料查询后,发现这是一道求逆序对个数的题目。 逆序对,简单来说即 我的数字比你大,但你排在我后面。 这里有两种做法:
阅读全文
摘要:bitset总结+测试 bitset总是在给定的位数中进行操作的,pos顺序指的是从右到左。 若有1的值在范围内操作后便看不到了。 //创建 bitset<7>b1; bitset<7>b2; //几个运算 b1|=b2; b1^=b2; b1&=b2; b1=~b1; b1<<=4; //几个设置
阅读全文
摘要:E. E-nn与游戏_第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 (nowcoder.com) 链接:https://ac.nowcoder.com/acm/contest/27302/E 来源:牛客网 先聊聊我对广搜的认识:以一个点为中心往外扩散,每遇到一个可接受的点,把点的放进队列,等到
阅读全文
摘要:sstream使用方式 string line; getline(cin,line); stringstream ss(line); ss>>z[i].infix>>mid>>z[i].prefix;
阅读全文
摘要:F金手指 最小字符串 key:循环同构 ,最小字典序, 最小字典序的实现 模式化 对比 拼接 发现一个新函数可用 s.substr(); 类似vb中的mid函数。 并且,对于string来说 可以直接进行< > =比较特别好用 拼接用+也方便! 关于k取值范围的问题:k<=n 最后一个位置,这里还有
阅读全文
摘要:删除子序列 给出一个长度为nnn的字符串SSS和一个长度为mmm的不含重复字符的字符串TTT,每次你可以在SSS中删除一个等于TTT的子序列,最多可以删除多少次? 如字符串S=ababccdS=ababccdS=ababccd,T=abcT=abcT=abc,可以选择s1s2s5,s1s2s6,s1
阅读全文
摘要:价值序列 题意 给出a1,a2,a3......an各项之差的绝对值之和为M,选出串(1<=i1<=i2<=i3<=i4<=.......in<=n)使得ai1,ai2,ai3,ai4.....aik的各项之间之差的绝对值之和M相等,问有几种选法。 思路 首先会发现,无论去掉哪个点,都不会使最终的值
阅读全文
摘要:Sequence Query 题意: 插入元素,查找不小于x的第k个元素和查找不大于x的第k个元素 思路: 使用multiset来写,排序复杂度为nlogn 注意这里的upper和lower,也可以直接用se.lower_bound()来表示或者upper_bound()来表示,迭代器用auto u
阅读全文
摘要:牛妹的数学难题 思路 重点是理解连续求和的意义,以及注意ai的范围 如s(i=1,2)s(j=1,2)ai*aj,画出一个二维矩阵,分别对应(1,2),(2,2),(2,1),(1,1)三种情况,所以这里类似理解,相当于在n个数中取不同的k个数(看下标,各不相同),如果有0,贡献的答案一定是0,如果
阅读全文
摘要:牛牛数论 D-牛牛做数论_2022牛客寒假算法基础集训营1 (nowcoder.com) 用到欧拉函数的定义 第一问 即最多质数相乘 第二问 只有质数的时候得到p-1/p 由于 当p不是质数时,会导致个数不是p-1个 所以 p-1/p > p-1/p+1 所以 我们可以得到 答案。 #include
阅读全文
摘要:Mayor's poster 题意 在1-10000000的墙上贴上10000张海报,可以互相覆盖,求最终可见多少张海报 思路 若要建树,每次查找到树底部的时间是log 1e8 * 1e8次查找 一定超时! 又 需要空间为4*1e8 空间也超了 发现这里只贴10000张海报,所以可以采用离散化的手法
阅读全文
摘要:Buy tickets--插队问题 题意 给n个数对pos,val,表示某人要插队的位置和权值,按顺序输出队伍的权值 思路 若按找正序想,难以确定每个人的位置 若按照倒序想,首先可以确定最后一个人的位置,然后再从后往前依次确定每个人的位置(若该位置有空,则插入,若没有,则往后查找) 因为涉及到查找,
阅读全文
摘要:g青蛙的约会 题意:两青蛙在环形的轨道上不同位置开始运动,求相遇的时间 思路: 根据题意可知 即求x+mt≡y+nt(mod L)的解 根据同余可化为 L|(x+mt-y-nt) 进一步化为 kL+(n-m)t=x-y 这里k为整数(因为可能是当圈相遇,也可能套圈),即求t的最小正整数解 注意:gc
阅读全文
摘要:d-同余方程 解同余方程的通法 注意:gcd的两个参数一定是正值 对于 Ax≡B(mod M) >Ax=My+B >Ax+My=B(正负号不重要),因为解出的x或者y可以通过整体式子+-lcm 的倍数来变化 于是就是解Ax+My=B这个不定方程。 根据斐蜀定理:ax+by=c=k∗gcd(a,b)(
阅读全文
摘要:beautiful numbers 题意 输入a,b,n,由a和b组成的长n的数字,求各位数之和仍为a和b组成的数字的个数 思路 对n进行判断,发现就是求成功a,b个数的组合数之和。 通过对a个数的枚举来判断符合条件的a的个数,然后把组合数加入最后的结果 这里用到一个技巧 组合数的计算以及乘法逆元
阅读全文
摘要:奶牛竞赛 题意: 有n个奶牛的编程能力各不同,经过m次比赛(一定会有胜负的比赛),输出能确定排名的奶牛 思路: 比赛过的奶牛建立边,再通过弗洛伊德的办法,借助于其他奶牛间接比赛建立边关系,前提是中间的元素需要作为一个输家一个赢家 最后只要查询是否和所有奶牛都建立了边 #include<iostrea
阅读全文
摘要:食物链 https://loj.ac/p/2060 题意 有n个物种,m条能量流动关系,求其中的食物链条数 思路 把他看成一项工程,完成顺序为从入度为0点开始到出度为0的点,求出从入到出的所有方案数。 首先用拓扑排序的思想,遍历入度到出度的所有点,给刚开始入度为0的点赋值为1,用记忆化的方法,在遍历
阅读全文
摘要:题意: 给一个n*n的方格,从(1,1)到(n,n),走两次,只能往右或往下,求取得的路径数字和的最大值 思路: 首先想用两次二维的DP解决,发现两个问题 1.求路径的时候把数字化为0不好判断,从终点到起点每次出最大值返回上一个位置存在上一个位置的dp值相同的情况,给解题带来不便。 2.会存在 0
阅读全文
摘要:导弹 题意 导弹拦截工具每次只能拦截不大于前一次高度的导弹。 给一组导弹的数据,问:一次使用该工具最多能拦截多少导弹,最少使用多少该工具能拦截全部导弹。 思路 一问:仔细思考后发现是最长不上升子序列问题,采用LIS的解法 二问:想要拦截所有导弹,不妨想后一个导弹高度要小于或者等于前一个导弹可以全部拦
阅读全文
摘要:##B.全排列 https://nanti.jisuanke.com/t/T1204 题意: 给出一串字符(长度<=6),输出它的全排列。 思路: 用next_permutation写 int cmp(char a,char b) { return a<b; } signed main() { st
阅读全文
摘要:##J.最大连续和 原题:https://loj.ac/p/10176 ##题意: 在一段整数序列中找到长度不超过m的总和最大的子序列 ##思路: 对于 50%50% 的数据,1\le n,m\le 1041≤n,m≤104; 对于 100%100% 的数据,1\le n,m\le 2\times
阅读全文
摘要:Error Curve 题意:对于二次函数,ax^2+bx+c,给定n组a,b,c(均>0),求出[0,1000]范围内所有二次函数组成的最大图像的最小值 思路:经过分析可以发现,对于该图像,当一个个二次函数的最大图像开始叠加,变化的图像一定比原来的图像高,并且这是一个连续的图像!所以,整个图像一定
阅读全文
摘要:##POJ 2773 Happy 2006【GCD/欧拉函数】 ###题意 输入m和k,寻找与m互质的第k个数 ###前置知识 gcd(a+b*k,b)=gcd(a,b) 证明:https://www.zhihu.com/question/386209132 ###思路 我们用类似埃筛的手法筛出[1
阅读全文
摘要:##math.h库中常用的函数 acos; //反余弦 acosf; //反余弦 acosl; //反余弦 using ::asin; //反正弦 using ::atan; //反正切 using ::atan2; //y/x的反正切 atan2(double y, double x) using
阅读全文
摘要:##第一次排位赛 I. Farm 一道数学二维几何问题,少用高中的方程思维,多用一些math库里的东西,像反三角函数这样,直接计算出角度值进而计算就可。 记得 保留小数位数 #include<bits/stdc++.h> using namespace std; signed main() { in
阅读全文
摘要:##第一场排位赛G.Bend Test ##思路 重点在于理解题目的状态转移方程、子问题的解、初始值? ###转移方程 However, in the case where he has 2 prototypes (p=2, m=100 still) and tried the first for
阅读全文
摘要:##2015Tishreen- Board Game 以本题为例总结dfs 核心代码 ~~~c++ //这里容易出错的点:dfs返回的位置是 [0,n)可以看成在n的位置返回 void dfs(int x,int y......) { if(判断条件+边界) { //back } for(循环) {
阅读全文
摘要:##和大小写有关的函数 函数一:isalpha() isalpha() 这个函数用于判断字符是否为英文字母,若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。 函数二:tolower() tolower() 这个函数功能是把字母字符转换成小写,非字母字符不做出处理。 函数三:
阅读全文
摘要:##L2-024部落 ###知识点:并查集 之前写过一次类似的题,这次遇到的困难在于 不知到用谁作为并查集的根节点,这题给了很好的例子 我们把数据分为 n0 num num num num 使num总是作为n0的根节点,这样就可以把整个树并入到另外一个树中,或者相反也可以把n0作为num的根节点 #
阅读全文
摘要:##L2-022 ###重排链表 ###思路 把单链表化成双向链表,然后从左到右逐个插入,然后逆序输出 基本操作 link , insert 注意的点: 输出的前缀为0或-1,要特殊处理位数 插入遍历的时候 x每次要移动两个位置 ###代码 #include<bits/stdc++.h> using
阅读全文
摘要:L2-021 点赞狂魔 知识点:结构体排序 把结构体储存在vector中,写cmp函数进行操作 cmp可以写出主关键字和次关键字 注意: 每次要初始化map 次关键词字储存用double,并且在结构体中既可以储存下标又可以储存double(这里选择了储存下标) #include<bits/stdc+
阅读全文
摘要:L1-046 光棍整数 题目详情 - L1-046 整除光棍 (20 分) (pintia.cn) 因为被除数是1组成的,所以直接模拟除法,每次的余数*10+1循环下去,直到余数为0即可。 注意: 开始执行的时候我们需要先找到一个大于n的数执行 #include<bits/stdc++.h> usi
阅读全文
摘要:L1-043 阅览室 (20 分) https://pintia.cn/problem-sets/994805046380707840/problems/994805087447138304 ###注意点 round函数求四舍五入 借书时间为最接近的S到E #include<bits/stdc++.
阅读全文