09 2020 档案
摘要:我还是见识短浅,学到现在为止,我并没有见过vector还可以用cin去进行输入的写法…… 例子: vector<int>v1,v2; // 开辟一维数组 v1.resize(100),v2.resize(100); for(int i=0;i<=6;i++) cin>>v1[i],cin>>v2[i
阅读全文
摘要:##思路 记得好久好久之前写过,但是看了也没有做题记录。 记得是找2的个数和5的个数就行,但是忘记了一点,就是2的个数一定是多于5的,所以直接累积5的个数就是答案。 ##AC代码 #include<iostream> #include<string.h> #include<algorithm> #i
阅读全文
摘要:##题意 给出组数据,每组数据给出一个和一个长度为的数列, 我们可以对相邻元素进行交换,要求我们在 的次数内把该数列排序, 排序的结果要求是 非递减 (注意:递减也不行), 如果可以排出来,则输出 YES ,否则输出 NO
阅读全文
摘要:##题意 给出和,表示有根蜡烛。 每当点燃一根蜡烛,只燃烧一个小时,但是可以把根燃尽的蜡烛拼接成一根新的蜡烛, 输出最多能让房间亮几个小时。 ##思路 这题只有1000分…… 直接暴力就行, 但是我总有部分数据错…… ##AC代码 #include<iostream> #in
阅读全文
摘要:##区别 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 引用必须在创建时被初始化。指针可以在任何时间被初始化。 ##例子 #include<bits/stdc++.h> using namespace std
阅读全文
摘要:##题意 先给出了一个,之后给出个数, 要求通过改变一些数,使得最后变成有序的序列(增或减),输出最小的修改量。 ##思路 二维DP+滚动数组。 因为数据较弱,所以不用严格递增或严格递减,所以序列中的高度一定是出现过的高度。 所以,最终修改后,或者和前一个数字一样,或者和后一个数字一样,
阅读全文
摘要:##题意 首先给出和,代表空猪重量和空猪装满硬币的重量; 接下去给出1个,表示接下来又行不同的硬币类型,每种硬币再给出一个价值和重量; 最后问我们是否能输出存钱罐猪中的最小金额,如果可以直接输出给定格式的语句,否则输出 This is impossible. 。
阅读全文
摘要:##题意 中文题。 ##思路 本来直接先把水域存起来,之后再for遍历,遇到陆地就用这个陆地去搜所有的水域,然后,TLE。 正确的做法是 BFS ,我想到了但是我没写出来。我又以为是记忆化搜索。 ##补充 这里我用到pair, 放上我之前写的pair的用法:https://www.cnblogs.c
阅读全文
摘要:##题意 中文题,自行理解。 ##思路 给出的和数据还有点大的,, 又涉及到公约数,也就是 __gcd(x,y)函数, 所以我们不能对这些数的因子去做素数打表, 所以,凭借常识,我们可以用map去进行标记; 为了再减少时间,我们对于其因数,可以直接用cmath下的sqrt去
阅读全文
摘要:##PS 比赛的时候一直WA,一直不知为什么,结果是自己傻,枚举的时候特地排除了末尾的元素,结果就是因为把末尾元素排除了所以才造成那部分数据没有被选择。 菜也是真的菜。 ##题意 中文题, 但是需要注意一下: 1、每次只能选一样,因为每样零食只有一个; 2、double不能% 3、一次只能买三包以内
阅读全文
摘要:##题意 每次给出一个,接着给出行字符串, 要求我们输出最长的公共子串(连续的字符,但是题目给的是sequence序列!?); 如果有多个相同长度的字符串,则输出字典序最小的; 如果没有找到,则输出 IDENTITY LOST。 ##思路 这题还可以用后缀数组写。 ##AC代码
阅读全文
摘要:##知识点 首先补一下知识点。 字串和子序列 子串:连续的字符组成的子序列 称为该串的子串。 子序列:相对位置不变形成新序列。 substr函数 string需要赋值给的字符串名称=字符串string名称.substr(x,y)。 从下标为x的字符(包括x)开始,截取/出长度为y的字符串。 例如:
阅读全文
摘要:鉴于蓝桥杯,于是有了该文…… (这点也足够用了) ctrl + / 注释/取消注释 编译报错区如何打开 f11 编译并运行 ctrl+n 快速创建文件 ctrl+r 快速替换想要换的元素 ctrl+shift+a 调整格式;记得Astyle选GNU;tab with可以调while大括号缩进改为4
阅读全文
摘要:##题意 要求我们输出: 1、至少给几个点传递消息,才能保证所有消息传遍整个图; 2、至少添加几条边,才能使任意选择一个点,消息都能传遍整个图。 ##思路 强连通模板题。 第一问:强连通分量缩点之后有几个入度为0的点。 第二问:首先我们画个图,就能发现只要把入度为0的点直接连一条边到入度为0的点上,
阅读全文
摘要:##题意 给出组数据,每组数据首先给出一个, 接下去有行数据,每行给出和,代表的老板是, 再给出一个,表示次询问,每次询问如果是 和,表示输出当前的任务; 如果询问的是 和、,表示把任
阅读全文
摘要:##题意 给出一个长度为的数组,次询问。每一次询问给出两个数和,表示在区间内,查询在给定区间内有多少个数字,该数字出现次 数等于它本身。 ##思路 题目中的ai最大,而数组范围,所以如果数据大于了,这个数就不可能为所求的忽略
阅读全文
摘要:##题意 给出组数据,每组数据第一行给出和,分别代表卫星数和哨所数,接下来给出行代表个哨所的坐标。 带有卫星的两个哨所,相互之间可以进行通信;否则 需要俩哨所之间距离小于等于才可以通过无线电通信。 我们需要满足每个哨所之间都有路径,确定最小的。 输出连接网络
阅读全文
摘要:##思路 不解释了,带权并查集模板。 ##AC代码 #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> #include<cmath> #include<list> #include<stdlib.h
阅读全文
摘要:##题意 给出n和m,表示有n个人(注意,n个人的编号是从0 ~ n-1,初始化的时候别弄错了),接下去给出m行,每行第一个数字为k,表示该行接下去有k个数,这些数中, 如果某一个数为0,说明为可疑人,他所在那一排的人也会变成可疑人,那一排的数在其他的行数中存在的话,那一排也变成了可疑人。 最后让我
阅读全文
摘要:##C10T2S1 spare a few minutes 抽出几分钟时间 lovely. xxxxx 太好了 council n.委员会;理事会;会议;政务委员会;市建的;集会 on behalf of the local council 代表当地市政府 travel-led I came on
阅读全文
摘要:##题意 给出多组数据, 每组数据给出一个 ,表示接下来有 行, 每行给出一个 ,表示后面跟着x对数据 , 代表第 行到 的时间为 。 问从第几号开始传所需的时间最少, 输出编号和最短时间。 ##思路 可以用Flo
阅读全文
摘要:##题意 给出一个n和p,让我们根据求出k的值,输出k即可。 ##思路 因为p的范围较大,所以用double存即可。 太菜了,想的很复杂,结果关键代码就一句。 ##注意 double的范围是 ~ ,也就是 -1.79E+308 ~ +1.79E+
阅读全文
摘要:##题意 给出4行4列,最后要使它们都变成 - ,每次翻转一个字符, 该字符所在行和列都会翻转, 最后输出都变成 - 的最少变换次数和变换路径。 ##思路 主要就是把 + 都找出来,然后对其行和列进行book++,其本身book--,具体看代码。 ##注意 长时间不写代码都忘掉了,%c吸收回车,用c
阅读全文
摘要:##题意 给你一个n和k,表示n本书和t分钟,接下去给出n个数,表示每本书的看书市时长, 要求在给定的t时间内,求出看的最大图书量。 按照给定的顺序进行看书,不能再回过头去看书。 ##思路 贪心:该题可以转化成最长公共子序列,然后用尺取法来做。 DP。 ##AC代码 #include<bits/st
阅读全文
摘要:##getline int main() { // gets(s1); // getchar(); //gets(s2); string s; getline(cin,s); //只能读string,不能读char // 可以读空格 //scanf("%[^\n]",s1); // scanf("%
阅读全文
摘要:##思想 记忆化搜索的思想无非就是:搜索 + DP ##注意!!! 记忆化搜索要判断是从起点直接搜dfs(0,0)还是for循环遍历每一个点都要去搜! 判断是否需要标记book,还是book直接作为搜到已经搜过的直接返回的数组! ##POJ1088-滑雪 注意:POJ上不能用万能头文件,把头文件注释
阅读全文
摘要:##题意 中文题 ##PS 我感觉再简单的DFS我写总还是有错误,关键是自己还看不出来。 ##AC代码 #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> #include<cmath> #inclu
阅读全文
摘要:##注意 线性表是有限序列。 ##基本操作 initList(&L); Destroy(&L);//并且释放L所占用内存空间 LocateElem(L,e); GetELem(L,i); ListInsert(&L,i,e);//前插 ListDelete(&L,i&e); ##申请线性表 //静态
阅读全文
摘要:##题目链接 https://www.luogu.com.cn/problem/P3379 ##算法分析 需要尽可能的向上跳,但是两者之间不能相遇。(因为如果相遇了,那么很有可能,虽然是公共祖先,但是未必是最近的) 倍增法:“倍增”就是指跳的时候是以而不是一个一个跳,并且是从大数往小数跳。
阅读全文
摘要:##题目链接 https://www.luogu.com.cn/problem/P3865 ##适用范围 主要是处理区间最值问题。 ##时间复杂度 的时间内进行预处理,的时间进行查询。(线段树解决可能会超时) 即列数:最大是(计算机上默认
阅读全文
摘要:##思路 首先需要知道:一个汉字在字符串中是以两个负的字符形式存储。(计算机中补码第一位是符号位,1为负数,所以 汉字机内码的每个字节表示的十进制数都是负数) 所以该题我们则需要遍历字符串,找出ASCII为负的进行累加, 因为问的是汉字个数,所以累加的结果除以2即可, 汉字机内码:使用二个字节,每个
阅读全文
摘要:##题意 给出一个N和M,输入-1 -1结束。 N代表N个人,Haha开始围绕这N个人丢手绢,每次丢在间隔为M-1的人身边,比如M=2,那么Haha从扔给A,下一次就应该扔给C。 如果每个人全部都能被丢到一次,那么输出“YES”,否则输出“POOR Haha”。 ##思路 如果N和M不存在公因数,即
阅读全文
摘要:##题意 给一个数组,每次可以任选一个进行操作: 操作一:选下标为和且时,让、,花费硬币为0; 操作二:选下标时,让、,花费硬币为1; 要求所有元素都为0,输出消耗最少的硬币数。 ##PS 过第三组数
阅读全文