摘要: Entertainment Box 题意: 有n个节目,每个节目给出开始时间(st)和结束时间(en); 有k个内存条这k个内存条可以同时存储节目。如果节目j的开始时间stj 大于等于节目i的结束时间,就可以放进内存条中; 问这k个内存条最多可以存储多少个节目。 思路:开一个multiset容器,开 阅读全文
posted @ 2018-10-02 19:11 sykline 阅读(159) 评论(0) 推荐(0) 编辑
摘要: HDU5884 Sort 题意:有n个序列要进行归并,每次归并的代价是两个序列的长度的和,要求最终的代价不能超过规定的T,求在此前提下一次能同时进行归并的序列的个数k。 思路:还是太单纯,看完题目一直以为要用归并排序来解题,如果已经看过多叉哈夫曼树的知识的话估计就不会这样了。先二分查找这个k,然后用 阅读全文
posted @ 2018-10-02 19:10 sykline 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个模式串和一个文本串,问在文本串中出现了几个模式串。 思路:AC自动机裸题; 看过n个版本的AC自动机后终于理解了代码是如何实现的。再一次体会到光懂得原理和能利用原理解决问题之间的巨大的鸿沟。 代码: #include <iostream> #include <cstdio> #incl 阅读全文
posted @ 2018-10-02 19:08 sykline 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Coefficient Computation UVALive8265 题意:计算组合数C(n,k)的值并将值按给定的进制输出。 思路:Java大整数类硬上。 PS:刚刚学完Java的大整数类,结果却被Java怎么开数组卡到吐血,直接后果就是少开一题,赛后学长指导后5分钟出题,真酸爽…… 包:jav 阅读全文
posted @ 2018-10-02 19:07 sykline 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 传送门:Chat Group(gym101775A) 题意:一个宿舍中又n个人,最少k(k >= 3)个人就可以建一个讨论组,问最多可以建多少个不同的讨论组。 思路:求组合数的和,因为涉及除法取余,所以要求逆元来解题。 虽然之前看到过有关逆元的知识,但是一直没有弄明白逆元的应用。嗯~~挖下的坑终于把 阅读全文
posted @ 2018-10-02 19:06 sykline 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 复杂度:O(n^2) C[i][j]即为C(i,j); #include <bits/stdc++.h> using namespace std; const int MOD = 1e9+7; const int maxn = 1e3; typedef long long ll; int n,k; 阅读全文
posted @ 2018-10-02 19:05 sykline 阅读(1237) 评论(0) 推荐(0) 编辑
摘要: 逆元: 如果满足公式,则有a 是 b的逆元同时b也是a的逆元。 逆元的应用: 设c为b在对m取余的意义下的逆元; 在求解公式 (a / b) % m的时候,如果b可能会非常的大,所以会出现爆精度的问题,这个时候就需要将除法转换成乘法来做,即: (a / b ) % m = (a * c)%m。 逆元 阅读全文
posted @ 2018-10-02 19:03 sykline 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 当年没填起来的坑,迟早会再一次掉进去!!!想想还是将现在自己会用了的部分记录下来,以后再做补充。 欧几里得算法: 到目前为止也只是用来求一下两个整数的最大公约数(感觉又是一个巨大无比的坑)。暂时先把这个用法记下来吧。 //非递归实现 long long gcd(long long a,long lo 阅读全文
posted @ 2018-10-02 18:57 sykline 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 唯一分解定理:任何一个大于1的自然数N,如果N不是质数,那么N可以分解成有限个素数的乘积;例:N=(p1^a1)*(p2^a2)*(p3^a3)......其中p1<p2<p3...... 在做 UVA10375 时学到了这个算法,虽然自己理解的还不透彻,先把自己的看法写下来,日后再完善; 要用唯一 阅读全文
posted @ 2018-10-02 18:55 sykline 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数:(转自百度百科) 欧拉函数F(x)的作用:求从1到x与x互质的数的个数。 直接求欧拉函数 int euler(int n)//计算与n互质的数的个数 { int res = n,maxn = n; for(int i=2;i*i < maxn;i++) { if(n % i == 0) { 阅读全文
posted @ 2018-10-02 18:52 sykline 阅读(632) 评论(0) 推荐(0) 编辑