随笔分类 - ACM
摘要:这题我们只需设个targe[i]表示第i块是否都为一个数,如果是,则targe[i]等于这个数,否则等于-1 然后暴力搞就可以了。以下大佬分析 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #includ
阅读全文
摘要:思路:先分块,对于更新操作,如果是左右两边的块,由于不一定是对块的全部数操作,所以要先对直接已经预先乘和加的更新,否则如果是中间块,直接更新块即可 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #incl
阅读全文
摘要:思路1:直接用vector操作,简单方便,直接水过 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <stdio.h> #include <algorithm> #include <map
阅读全文
摘要:思路:因为他的范围在2的32次方之内,所以一个数最多开方5次就会变成1。我们先分块,记录每一块中所有数之和,如果一个块中所有值都为1后,我们就不再对其操作 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #
阅读全文
摘要:#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <stdio.h> #include <algorithm> #include <map> #include <queue> #includ
阅读全文
摘要:思路:简单分块,写的时候一定要谨慎!!!,把y写错成x,wa到怀疑人生....... #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <stdio.h> #include <algorit
阅读全文
摘要:ai=(p×ai−1+q×i+r)modMODai=(p×ai−1+q×i+r)modM 题目链接:https://vjudge.net/problem/HDU-6319ai=(p×ai−1+q×i+r)modMOD 题意:给你n,m,k,p,q,r,MOD,七个数,n为长度为n的数组,其中前k个数
阅读全文
摘要:ZJM 有一个长度为 n 的数列和一个大小为 k 的窗口, 窗口可以在数列上来回移动. 现在 ZJM 想知道在窗口从左往右滑的时候,每次窗口内数的最大值和最小值分别是多少. 例如: 数列是 [1 3 -1 -3 5 3 6 7], 其中 k 等于 3. 思路:板子题,输出的时候分两行分别输出区间最小
阅读全文
摘要:思路:先分块,然后每一块都用vector存起来,然后从小到大排序,查询的时候直接二分查找即可,坑点:不要在查找的时候排序,要每次改为就排序,否则会 超时,超了三次......... #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include
阅读全文
摘要:题目描述 给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,单点查值。 输入格式 第一行输入一个数字 n。 第二行输入n 个数字,第 i 个数字为 ai,以空格隔开。 接下来输入 n 行询问,每行输入四个数字 opt、l、r、c,以空格隔开。 若 opt==0,表示将位于[l,r] 的之
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 x 数 删除 x 数(若有多个相同的数,因只删除一个) 查询 x 数的排名(排名定义为比当前数小的数的个数 +1 ) 查询排名为 x 的数 求 x 的前驱(前驱定义为小于 x,且最大的数) 求 x 的后继(后继定义为
阅读全文
摘要:如图可以知道 将C[]数组的结点序号转化为二进制 个数 lowbit(x) == 2^k 1=(001) C[1]=A[1]; 1 1 k=0 2=(010) C[2]=A[1]+A[2]; 2 2 k=1 3=(011) C[3]=A[3]; 1 1 k=1 4=(100) C[4]=A[1]+A
阅读全文
摘要:【题目描述】 在完成了分配任务之后,西部 314 来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘ V’ ),一个部落崇拜铁锹(‘∧’ ),他们分别用 V 和∧的形状来代表各自部落的图腾。西部 314 在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标
阅读全文
摘要:long long C(int n, int m) { int i; long long sum = 1; for (i = 1; i <= m; i++) { sum *= (n - m + i); } for (i = 1; i <= m; i++) { sum = sum / i; } ret
阅读全文
摘要:Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided t
阅读全文
摘要:Prim算法 Prim算法是一种产生最小生成树的算法。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现;1959年,艾兹格·迪科斯彻再次发现了该算法。 Prim算法
阅读全文
摘要:题意:题意给出一个序列,构造一棵二叉搜索树,让你找一个序列,满足:能构成与给出的序列相同的二叉搜索树,同时,字典序最小。 思路:首先构造二叉搜索树,然后先序遍历输出即可。 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstr
阅读全文
摘要:我们知道二叉树是指最多有两个孩子的树,分别为左孩子和右孩子,或者左子树和右子树。根据根节点以及左右子树的访问顺序不同,对二叉树的遍历分别有先序遍历、中序遍历和后序遍历。 现在给定一棵树的先序遍历和中序遍历,试求出其后序遍历。 #define _CRT_SECURE_NO_WARNINGS #incl
阅读全文
摘要:程序接受一些形如xi=xj 或 xi≠xj 的相等/不等约束条件作为输入,判定是否可以通过给每个 w 赋适当的值,来满足这些条件。 输入包含多组数据。 然而粗心的小w不幸地把每组数据之间的分隔符删掉了。 他只知道每组数据都是不可满足的,且若把每组数据的最后一个约束条件去掉,则该组数据是可满足的。 思
阅读全文
摘要:题意:给你一些字符串,如果有字符串是其他两个字符串的联合。输出这个字符串 思路:先把字典树造出来,然后利用substr分割成两块暴力查找即可 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstring> #include<s
阅读全文