上一页 1 ··· 6 7 8 9 10 11 下一页
摘要: "luogu2657" 思路 数位dp,记录下上个位置的数,如果当前的数字与上个数字的差值小于2,就不再转移。还是要注意排除前导0。在记忆化的时候,全都是前导0的情况不能记忆化。 代码 cpp include include include using namespace std; typedef 阅读全文
posted @ 2018-10-10 09:04 wxyww 阅读(138) 评论(0) 推荐(0) 编辑
摘要: "hihocoder1509" 思路 对于每两个数,从二进制的高位到低位考虑,发现,若前面一个的当前位是1,后面一个的当前位置是0,那么s的当前位置必须是1。反之,若前面是0,后面是1,那么s的当前位置必须是0。如果出现矛盾的情况则直接输出0。如果两个数高位已经可以判断出大小了,那么后面的位置随便选 阅读全文
posted @ 2018-10-09 21:40 wxyww 阅读(135) 评论(0) 推荐(0) 编辑
摘要: "hdu6148" 思路 一个数位dp模板题,注意判断前导0。用一个bz来记录当前是应该增还是可增可减。然后排除不满足条件的情况并进行dp即可。 代码 cpp include include include using namespace std; typedef long long ll; con 阅读全文
posted @ 2018-10-09 20:00 wxyww 阅读(242) 评论(0) 推荐(0) 编辑
摘要: "hdu2089" 思路 数位dp模板题。从高位往低位进行搜索,用pos记录当前位置,lst记录上个位置的数字,bz记录上个位置是否是6,limit来记录上个位置是否达到了上界(如果达到了,就需要对当前位置的上界进行处理) 代码 阅读全文
posted @ 2018-10-09 18:59 wxyww 阅读(112) 评论(0) 推荐(0) 编辑
摘要: "luoguU42592" 20分思路 对给出的序列求出前缀和,然后$n^2$暴力枚举即可拿到第一档分 40分思路 对于数列中的数都相同的情况。只需要特判即可。只要特别注意全都是0的情况即可。 100分思路 仔细考虑一下题目意思就可以知道,其实这个题就是求出前缀和之后,对于每个位置上的数,在前面的所 阅读全文
posted @ 2018-10-09 16:41 wxyww 阅读(163) 评论(0) 推荐(0) 编辑
摘要: "luogu2073" 思路 真的不明白洛谷标签的意思。线段树?平衡树?难道这个题不就是用优先队列模拟吗。。。看见标签还以为读错题了 用一个pri数组的下标表示价格,里面存漂亮度。用两个优先队列,分别按升序降序储存价格,然后用两个变量W,C分别表示当前漂亮度和价格就可以模拟了。 注意一个坑点,这个题 阅读全文
posted @ 2018-10-08 14:48 wxyww 阅读(136) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 思路 首先,最优秀的分法一定是每段两端都是这一段中最多的那个,否则可以把不是的那个踢出去单独成段肯定会更优秀。然后就成了将这个序列分段,保证每段两端元素相同的最大收益和。 用a[i]记录第i个位置上的数,用s[i]记录前i个元素中a[i]出现的次数。f[i]表示以前i个数的最大收益。 阅读全文
posted @ 2018-10-08 10:40 wxyww 阅读(212) 评论(0) 推荐(0) 编辑
摘要: "luogu2114" 思路 因为位运算对于每一位是独立的,所以对每一位都对这n个数进行操作,然后观察最后得出的是1还是0。并且保证每一位拼起来之后要比m小。 代码 cpp include include using namespace std; typedef long long ll; cons 阅读全文
posted @ 2018-10-08 08:06 wxyww 阅读(142) 评论(0) 推荐(0) 编辑
摘要: "codevs3342" 思路: 既然是要求最小化最长空题段,直接二分答案。然后就是check函数的写法。 先考虑n方转移,假设当前二分的答案是x,用f[i]表示前i个题,第i道题写的最小花费时间。最后再去判断后f数组的后x个值是否小于等于要求时间的。然后返回。 cpp int check(int 阅读全文
posted @ 2018-10-07 20:23 wxyww 阅读(180) 评论(0) 推荐(0) 编辑
摘要: "luoguU42591" 题意: n个不超过n的正整数中,其中有一个数出现了两次,其余的数都只出现了一次, 求这个出现两次的数。 思路: 这个题的亮点在于内存限制1MB。明显不能再用数组储存了,肯定是用一些运算来求出那个数。假设出现两次的数为x,没有出现的数为y。一开始很容易想到计算出1到n加起来 阅读全文
posted @ 2018-10-05 22:05 wxyww 阅读(167) 评论(0) 推荐(0) 编辑
摘要: "Day1t1" 思路 就是模拟,只是怎样更优雅的模拟而已,不过多点if也没关系,能拿分才是关键嘛。 代码: cpp include include using namespace std; typedef long long ll; const int N=200000+1000,mod=1000 阅读全文
posted @ 2018-09-29 16:38 wxyww 阅读(123) 评论(0) 推荐(0) 编辑
摘要: "Day1T1" 思路 炒鸡良心的模拟题 代码: cpp include include using namespace std; const int N=42; int a[N][N],x,y,ans; int main() { int n; cin n; x=1; y=n/2+1; a[x][y 阅读全文
posted @ 2018-09-29 15:32 wxyww 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 考试技巧总结 空间: 1、数组一定一定要计算好空间,无向图存边记得开两倍空间。线段树要开四倍空间,trie树空间为L L n(l为最长字符串的长度)在允许范围内往大了开。看好给定内存。 2、注意调用,有时候即便数组开了100,在本地还是可以调用110,却没有提示,一定debug的时候要注意检查这一点 阅读全文
posted @ 2018-09-27 18:39 wxyww 阅读(188) 评论(0) 推荐(0) 编辑
摘要: "luogu3398" 思路: 假设松鼠a要从a1去a2,松鼠b要从b1去b2,ks表示lca(a1,a2)和lca(b1,b2)中深度较深的那个。那么,若要使得两只松鼠可能相遇,则只要满足lca(a1,b1),lca(a1,b2),lca(a2,b1),lca(a2,b2)中任意一个的深度深于ks 阅读全文
posted @ 2018-09-27 17:47 wxyww 阅读(199) 评论(2) 推荐(0) 编辑
摘要: "luogu2420" 思路: 非常裸的一道lca的题,维护一个lca数组,一个异或数组,然后在找lca的过程中。进行异或即可。 代码: cpp include include using namespace std; const int N=100000+1000,logN=20; int lca 阅读全文
posted @ 2018-09-27 17:40 wxyww 阅读(145) 评论(0) 推荐(0) 编辑
摘要: "poj1275" 题目大意: 每天有24小时,每个小时需要一定的人。有m个人每个人会有一个开始工作的时间,每个人会工作8小时,问至少需要多少人才能完成任务。如果这m个人也不能完成任务就输出"No Solution"。每天会不断的循环下去,也就是今天20点雇佣的人,会工作到明天4点。 思路 用s[i 阅读全文
posted @ 2018-09-13 16:42 wxyww 阅读(135) 评论(0) 推荐(1) 编辑
摘要: "poj3169" 题目大意: 有n头牛,他们按顺序排成了一排,有些牛关系比较好,他们的距离不能超过某个距离,还有些牛关系不好,他们之间的距离不能小于某个距离,可能会有多头牛挤在同一位置上,问1号牛和n号牛之间的最大距离是多少,如果不存在满足条件的排列则输出 1,如果距离无限大则输出 2. 思路: 阅读全文
posted @ 2018-09-11 22:02 wxyww 阅读(107) 评论(0) 推荐(0) 编辑
摘要: "poj1201" _差分约束 题目大意: 给定n个区间,[ai,bi]这个区间至少选选出ci个整数,求一个集合z,满足每个区间的要求,输出集合z的大小。 思路: 既然是区间,想到用前缀和。用sum[i]表示前i个元素中选的数量。对于每一个条件[ai,bi]中至少选ci个,就转化为了sum[bi] 阅读全文
posted @ 2018-09-11 21:51 wxyww 阅读(132) 评论(0) 推荐(0) 编辑
摘要: "Day1T1" 思路: 非常简单的一个模拟 代码: "Day2T3" 思路: 搜索+最优化剪枝 (~~不多bb是因为抄的题解啊啊啊啊~~) 代码: cpp include include include using namespace std; const double eps=1e 8; boo 阅读全文
posted @ 2018-09-08 17:18 wxyww 阅读(139) 评论(0) 推荐(0) 编辑
摘要: "Day1T1" 30分思路: 倒着枚举答案z,用扩展欧几里得求解,如果能找到两个非负整数x,y使得ax+by=z则继续枚举,直到无解为止 100分: 最适用与考场上的做法,根据30分思路打表找规律。 30分代码: cpp include include include include includ 阅读全文
posted @ 2018-08-29 16:39 wxyww 阅读(163) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解: 对于上面和下面的式子进行分解质因数,然后看看上面的质因数个数减去下面的质因数个数能不能达到k的质因数的要求即可。 分解质因数的时候用对于阶乘分解质因数的常用方法:比如要求1999!中能分解出多少个5,那么就把1999不断的除以5,并且把得到的数相加即可。原因显然。 但是上面方法 阅读全文
posted @ 2018-08-25 19:29 wxyww 阅读(152) 评论(0) 推荐(0) 编辑
摘要: T1: "bzoj2705" 题目描述: 给定一个n求$\sum\limits_{i=1}^ngcd(i,n)$ 因为n太大,所以O(n)的做法肯定不行,然后就去想根号的方法。 $$\sum\limits_{i=1}^{n}gcd(i,n)$$ $$=\sum\limits_{k|n}k \sum\ 阅读全文
posted @ 2018-08-25 15:48 wxyww 阅读(455) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意: 其实题目的意思就是问从x到y权值最小的路的权值最大能是多少。 思路: 首先可以先把这张图变成一棵树。因为那些更小的点肯定是不跑更优秀,而且题目没有要求路程,所以生成一棵树,只要能保证在同一个图里面的点能够连通即可。又因为他要使最小权值最大,所以可以只留下那些权值更大的边。所以跑 阅读全文
posted @ 2018-08-21 09:45 wxyww 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 基础数论 快速幂: 用来快速求m的n次幂,并取模 矩阵乘法: 当且仅当前一个矩阵的列数等于第二个矩阵的行数时,可以进行矩阵乘法,矩阵乘法不满足交换律,满足结合律.$$C_{ij}=\sum\limits_{k=1}^n{A_{ik} B_{kj}}$$ 方阵可以进行矩阵快速幂。单位矩阵的对角线上都是 阅读全文
posted @ 2018-08-20 07:39 wxyww 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 贪心 贪心其实就是按照某种规则排序。 乱搞 如果不知道应该按照什么规则排序,可以将自己能想到的所有排序方式都排一遍,从其中取更优秀的答案,排序次数越多只能使答案更优秀,所以放心排。 拟阵 先找对于只有两个数据的情况进行手玩。找到其中的排序方式,然后对于后面的任意两个数排序时(不一定是连续的),排序方 阅读全文
posted @ 2018-08-16 20:18 wxyww 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 读入与输出 scanf scanf读入char数组不需要写& scanf读入longlong类型时在unix(linux ububt mac osx)下用lld,在WIN32下用I64d,WIN64下以上两种都可以。为了考试时避免忘记更改可以在文件开头加上 调用时 cin cin正常状态下比scan 阅读全文
posted @ 2018-08-16 14:25 wxyww 阅读(200) 评论(0) 推荐(0) 编辑
摘要: "传送门" 突然发现自己没整理过异或的知识,正好借这个题整理一下。 关于异或 (1)异或就是在二进制下,两数各个位置上的数,相同为0,不同为1,所得到的数,比如说4^7,4的二进制是100,7的二进制是111,异或之后所得到的二进制数就是011=3,所以4^7=3。 (2)异或满足结合律与交换律,即 阅读全文
posted @ 2018-08-13 07:59 wxyww 阅读(214) 评论(0) 推荐(0) 编辑
摘要: LCA LCA(Lowest CommonAncestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先 一般采用倍增的方法来求最近公共祖先。还可以用树链剖分。dfs序似乎也可以 思路 用数组fa[i][j]表示从i往上跳2j步所得到的祖先。用dep[i]表示i的深度。然后 阅读全文
posted @ 2018-08-13 07:23 wxyww 阅读(262) 评论(0) 推荐(0) 编辑
摘要: dp的状态和转移方程就足够让人头疼,却还有一些普通dp复杂度不够优秀的题目要用优化。。。 dp的解题方法似乎只能通过讲解题目来完成。 一道例题: "洛谷3195" 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆, 阅读全文
posted @ 2018-08-07 21:40 wxyww 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 树上问题 很多处理区间的问题(像是RMQ,区间修改)。可以用线段树,树状数组,ST表这些数据结构来维护。但是如果将这些问题挪到了树上,就不能直接用这些数据结构来处理了。这时就用到了dfs序和树链剖分。 DFS序 dfs序就是按照dfs的顺序对一棵树上的结点进行编号。这样完成编号的优点是:每棵子树上的 阅读全文
posted @ 2018-08-06 21:10 wxyww 阅读(289) 评论(0) 推荐(1) 编辑
上一页 1 ··· 6 7 8 9 10 11 下一页