自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 第十五周训练总结(二)

这一周时间挺紧张的,好几门课都结课,要准备期末考试了,大部分时间都在复习,自己对专题学习又有些松懈了。题目里有一些关于数学期望的东西,了解了一点概率的知识,但还是远远不够。L题:在每包小当家方便面里面,可能有一张卡片,也可能没有。已知有总共有n张卡片,第i张的卡片出现的可能是pi。 问收集齐所有的卡片需要吃方便面数的期望是多少。概率上说,假如买第种中卡片的几率是0.1,那么

2017-12-10 22:05:41 237

原创 第十五周训练总结(一)

这几天还是继续刷专题,整理了几个比较重要的题目。Z题:T组 测试样例,n表示有n次询问,m表示模数。初始化X=1。每次询问有两个数x,y。当x=1时,求当前的X乘以y的结果当x=2,求当前的X除以第y次询问的y值(数据保证当x=2时,第y次询问对应的是一个1询问)每次询问输出操作完后的X。        这道题是利用线段树维护区间乘积,因为x=2时除以第y次询问的y值,此时线段

2017-12-07 21:25:56 234

原创 第十四周训练总结(二)

这几天重点看了一下容斥原理。容斥原理,在高中学过一点,但是用来解题的话,还是有障碍,特别是不知道怎么写代码。容斥原理的想法就是求多个集合的并集.所以要先设计好集合。组合数学问题中,正面解决会困难,常用方法是正难则反,使用容斥原理求反向在用全集减去.将对立面的限制条件分析清楚。例如求区间互质的数的个数,则用除法等计算出一个数的倍数的方法再减去。容斥原理的常见代码写法DFS法。模板:

2017-12-03 21:22:48 225

原创 第十四周训练总结(一)

这几天看了排列组合的相关知识,有些知识在中学时接触过,这次又学了很多新的知识。1. 圆周排列:从n个不同的数中不重复的取出取出r个沿一圆周排列,称为一个圆周排列,所有的r-圆周排列数记为 Q(n,r)。但是圆周排列与排列的不同之处在于圆周排列首尾相邻,如a、b、c、d的4种不同排列abcd, dabc, cdab, bcda,在圆周排列中都是一个排列。2. 多重集:多重集—元素可以多次

2017-11-30 21:52:52 241

原创 第十三周训练总结(二)

专题二结束了这两天主要还是刷专题,今天把数论部分又重新看了一下,感觉做了题之后再回头看那些知识点,理解的更深刻。又把之前做过的题目重新梳理了一下,有几个题目感觉收获挺大的,之前没有好好总结。G题:给出A,B,找出A^B,所有自然因数之和。A=(p1^a1)(p2^a2)(p3^a3)...(pn^an)。A^B=(p1^(a1*B))(p2^(a2*b))...(pn^(an*B)),当只

2017-11-26 22:07:24 302

原创 第十三周训练总结(一)

这几天主要还是刷专题,又看了几篇博客。数论主要是用几个重要的公式来解决相关问题,如中国剩余定理、欧拉函数、最大公约数、快速幂算法、求被除数相对于的模的逆元等。虽然主干的原理算法并不是很多,但是相关的小性质及小原理很琐碎,题目主要是靠各种数论相关的知识点进行推导,推导出公式来,题目就迎然而解了。昨天去图书馆借了书,接下来也要抓紧看,把知识系统化。昨天的练习赛难度还是挺大的,只出了D题。题意:

2017-11-23 21:24:16 183

原创 第十二周训练总结(二)

这几天做题有题目和欧拉函数有关,又看了一下欧拉函数相关内容还有几个在题目中遇到的新概念。 原根和指数 设h为一整数,n为正整数,(h,n)=1,适合h^l=1(mod n)的最小正整数l叫做h对模n的次数。如果l=φ(n),此时h称为模n的原根欧拉函数:在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。费马小定理:是数论中的一个重要定理,其内容为:假如p是质数,且

2017-11-19 21:37:37 147

原创 第十二周训练总结(一)

这周进行了期中总结,听了其他人的总结后,回来又反思了自己这段时间的表现,想了挺多的......  昨天练习赛第一题,是个找规律的题目。求出能把2.3.5.7整除的数,前提是输出该数的位数,并且是最小的。  这个题主要是找到他的周期,n==1||n==输出-1,至少210.n==3 210.后面以六个数为周期。这两天又重新看了一下中国剩余定理,因为做题时遇到这块内容,感觉很吃力。

2017-11-16 21:34:08 188

原创 第十一周训练总结(二)

这三天原本是计划好好刷专题,没想到周五晚上突然发烧,昨天又折腾了一天,今天才好好做了一天的题。

2017-11-12 21:22:50 156

原创 第十一周训练总结(一)

昨天训练赛比起前两场难度低了一些,算法涉及到的少了。出了三道题。A题:任意选择起点和终点,要求遍历标号为 1 ~ n 的学校,从学校 i 到达学校 j 的花费为 (i+j)%(n+1)。求遍历所有学校的最小费用。根据 (i+j) % (n+1) 可以得出:1→n 费用为 0,2→n−1 费用为 0,3→n−2 费用为 0,因此,遵循下列路径的走法将是最小费用 1→n→2→n−1→.

2017-11-09 21:44:37 176

原创 第十周训练总结(二)

这几天主要看了中国剩余定理:代码表述:1. int CRT(int a[],int m[],int n)  2. {  3.     int M = 1;  4.     int ans = 0;  5.     for(int i=1; i6.         M *= m[i];  7.     for(int i=1; i8.     {  9.   

2017-11-05 21:36:45 190

原创 第十周训练总结(一)

这几天看的数论内容有大整数分解问题、大数k次方前x位数据高精度问题。还解了几个VJ上的题目。X题:题意:对给定的n,输出1~n的所有的不同数字的数对的gcd的和。思路:以10为例,与之互素的有φ(10)=4个(1,3,7,9),与之gcd=2的有φ(10/2)=4个(2,4,6,8),与之gcd=5的有φ(10/5)=1个(5)这样,10提供的G值就是5*φ(2)+2*φ(5)

2017-11-02 21:19:03 451

原创 第九周训练总结(二)

数论的题目,连着看了好几个都没有思路,感觉题目和看的课件没多大联系。后来有同学建了个专门讨论数论题目的群,哪个题比较容易,有思路就会一起分享,才勉强做了两个。     W题:题意: 给出a,b两个数的最大公约数gcd 和 最小共倍数lcm, 现在要你求出a,b, 并且a是最小的. (a解题思路:1. 求最小共倍数的时候是: lcm(a,b) = (a*b)/gcd(a,b) ==>

2017-10-29 20:56:40 211

原创 第九周训练总结(一)

昨天晚上打的比赛,出了两道题。A题:题目大意,有三个房子,一开始你在第一个房子里,第一个房子与第二个房子的距离为a,和第三个的距离为b,第二个房子和第三个的距离是c。现在有t个单位的时间,第一时刻你在第一个房子吃饭,每个时刻你要到另一个房子里去吃东西,想当然,作为一个单纯的吃货,当然是多吃少走咯,所以他每次走最短的路径。问要走的最小距离。这个题直接暴力解决,因为第一题打卡感觉不需要用算

2017-10-26 22:11:31 206

原创 第八周训练总结(二)

因为这次的课件我是从后往前看的,之前先看了最后的模线性方程,现在又回头看了前面的内容。先看了一些常用的对数据处理的相关库函数。int abs(int i) 返回整型参数i的绝对值  double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n)

2017-10-22 21:55:13 274

原创 第八周训练总结(一)

这周开始新的内容了,我选的是数论的内容。        数论的部分内容在专业课学习过,原以为理解起来会比较容易,还是自己想的太简单,学的知识还是太浅。比如整除的规律这部分,之前只学习过被0、1、2、3、5整除的情况,这次的课件上扩展到了两位数甚至三位数,看完之后一时还接受不了,然后经常打开手机看看,才记了差不多。到后面的模线性方程,也被卡住了,慢慢地了解了它的解题步骤:(1)求 d=g

2017-10-19 21:04:43 275

原创 第七周训练总结(二)

这周末时间比较充裕,有时间复习专业课,也有时间昨ACM。这几天主要还是做题,因为马上要截止,所以比较积极。I题:题意:给你一个序列,有两个操作,1是将区间[a,b]内满足 (i - a) % k == 0的位置加上c,2是查询a位置的数。解题思路:因为k比较小,所以可以对于每一个k建立一个树状数组,这样还不够,无法确定应该向哪个位置加数,再加一维表示模k的余数,这样建立就行了。对于更新

2017-10-15 21:44:27 175

原创 第七周训练总结(一)

这两天时间比较多,做了几道树状数组的题目。P题:题意:一群牛参加完牛的节日后都有了不同程度的耳聋,第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛i,j交流的时候,交流的最小声音为max{v[i],v[j]}*他们之间的距离。现在有n头牛,求他们之间两两交流最少要的音量和。解题思路:首先将这n头牛按照v值从小到大排序(后面说的排在谁的前面,都是基于这个排序)。这样,排在后面

2017-10-12 21:32:24 235

原创 第六周训练总结

前四天看了一下国庆专辑的题目,只出了E题。这个题目要求求区间最值,区间最值其实和区间求和差不多,就是将sum数组的含义转移到max,然后通过特定的区间更新max。在区间求和中,当我们维护max[i]的时候,要找到它前面所有的max[j]来更新,画图可知,max[i]需要的max只有max[i-2^0],max[i-2^1],max[i-2^2]..max[i-lowbit(i)+1]。求区

2017-10-08 22:42:10 205

原创 第五周训练总结(一)

这周终于没有乱七八糟的事情,能安安心心的学习,#include #include #include #define MM 1000000007#define Max 100010using namespace std;struct node{    int l,r,s;}tree[Max*6];struct node1{    int a,b;

2017-09-28 20:38:56 161

原创 第四周训练总结(二)

周六的北京赛区的比赛,是这几场比赛中出题最少的一场。首先第一题,题意说的很复杂,出去旅游N天,其中去北京玩M天,去的第一天和另外一天要去北大参观,其中有几使天北京交通受限,游玩受阻,但是可以延长在北京的时间。要找出北大游客数最少的两天。只要把题意理解透彻,代码就比较容易了。

2017-09-24 21:43:40 166

原创 第四周训练总结(一)

这周先是看了上周天网络赛第一题的题解,但是因为这道题卡精度,题解都是用了JAVA...看了一个题解,最后也只看懂了一点知识:a.add(b);          加法运算  a.subtract(b);     减法运算 a.multiply(b);     乘法运算   a.divide(b);       除法运算 a.mod(b);          取模运算

2017-09-21 21:26:51 186

原创 第三周训练总结(二)

这周只参加了今天下午的比赛,感觉今天下午状态不好,精神集中不起来,思维也跟不上,到了后面一个多小时大家都有点散漫。     今天的比赛出了第十一题, 题意:给出一个质数,判断该质数是否为两立方数之差 首先x^3-y^3为一个质数,则x=y+1,化简,得3*y(y+1)+1。所以一个质数n要是两立方数之差,则n-1是3的倍数,且n-1是两相邻数之积。#includeiostream>  

2017-09-17 22:16:27 228

原创 第三周总结(一)

这几天看了一下老师发的博客,就看了几篇,感觉前辈写的很深奥,很多名词自己之前都没有听说过,还有一些模板对我来说也很新鲜,但是看完之后没有理解很多,感觉自己理解知识很慢,而且要反复看几次。这周时间比较混乱,下周末要考计算机二级,操作题还没有看多少,感觉比之前想象的难多了,课余时间还要花费时间看二级。这两天在忙着申请奖学金,写各种申请书。今天下午和晚上时间比较充裕,做了一下第三题。题目大意:

2017-09-14 21:41:26 239

原创 第二周总结(二)

这两天的网络赛,出题数不多,和那些名校的差距的确很大。五个小时的比赛,往往就是前两个小时精力充沛,中间就开始犯困,迷迷糊糊,最后一个多小时就找还有哪个题有点思路。这两天最耗时的都是规律题,几乎一半的时间都在找规律。看完题目后都没有想到是找规律,都是想直接做,但是因为数太大,直接做都会超时。周六的题最后是用了打表,把所有是完全平方数的打出来。今天的第五题是斐波那契数列,找数字K和下标的关系。但是

2017-09-10 17:03:10 144

原创 第二周总结(一)

这几天看了前辈的博客,还看了区间更新,区间更新跟单点更新的不同之处在于另定义一个数组用于储存修改操作,其分区间也应被修改,但是修改储存在了数组中,可以暂时不用修改;而对于当前区间比需要的目标区间大的时候,则需要往下进行修改了。基本模版:void update(int num,int le,int ri,int x,int y){    if(x=ri)    {

2017-09-07 20:59:09 140

原创 第一周总结(二)

这几天开始了线段树的学习,假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)).线段树的原理,就是,将[1,n]分解成若干特定的子区间(数量不超过4*n),然后,将每个区间[L,R]都分解为少量特定的子区间,通过对这些少量子区间的修改或者统计,来实现快速对[L

2017-09-03 20:46:09 172

原创 第一周总结(一)

刚刚开学感觉一切都还没有进入状态,第一周感觉晕晕乎乎的,脑子也不灵活了。本学期开设的专业课比较多,课表排的也比较满。有几门课还没有入门,所以课下花了很多时间复习、做题。现在感觉脑子都不清醒了......这周结束了树状数组的专题,这个专题出题数不多,周二解了第二题。题目大意:给你一个串,求这个串中不递减的子串有多少个。初一看,完全想不到会是用树状数组,但是不递减就想到逆序数,逆序数又想到了树状数

2017-08-31 21:49:55 142

原创 暑假训练总结

社会实践调查报告        题目:暑假ACM训练的实践与总结专业班级:信息与计算科学2班姓名:李雨洁 学号:201643952017 年 8 月 25 日           【摘要】 31.搜索和图论 42.二分查找和单调队列 53.树状数组 54.总结 6    

2017-08-25 22:12:13 405

原创 2017.08.24小结

今天又把树状数组中求逆序数的算法看了一遍,因为昨天做题觉得掌握还是不好,       逆序数的基本框架如下:#include #include #include #include #include using namespace std; int b[500005], c[500005];int n;

2017-08-24 20:57:47 162

原创 2017.08.23总结

今天才开始做树状数组的专题,我以为还没有开,看到已经有很多人做了很多,有点着急,本来做题就很慢......看到最后一题通过的人多,是题解里做过的题,但是还是要重新理解,感觉做过的题还是做不到能够马上记起思路求逆序数。然后做的B题点击打开链接,这道题读懂后,这就是排兵布阵的2维版本嘛,不过一开始我想用一位数组来解决这个问题,结果一直run time erro,我就是把每个点(x,y)以x*100

2017-08-23 21:19:06 115

原创 2017.08.22小结

感觉后面的题确实变得难了,有个dp理解起来还是挺难的,用了五重的dp,这也就到了树状数组起作用的时候,用来优化。这些博客很多一个题用上好几个知识点,你有一点不会或者想不到就不能做出来。比如有个dp题,找出来dp公式,还要离散化出来,在用树状数组优化......    今天的第一题是一道最小生成树的变形,就是可能有两个点之间的距离可以视为0,然后使用prime算法就行了。第二题,问最少用几块木板

2017-08-22 21:15:14 180

原创 2017.08.21总结

转眼间,暑期集训到了末尾,这几天一直在看博客,看得很慢,吸收的很慢,树状数组真的很难想,光看题目意思没办法联想到用树状数组去解决,比如今天看的这道题,给你一个n个整数组成的序列,每次只能交换相邻的两个元素,问你最少要进行多少次交换才能使得整个整数序列上升有序。这里需要用到数学学的逆序数,然后就不知道怎么去下手了,解决的妙办法:处理第i个数a[i]的时候,它的逆序为:x[max]+x[max-1]+

2017-08-21 21:06:36 140

原创 2017.08.19总结

下午看了一下网络赛的题目,虽然没有参加,自己也尝试了一下,真的大受打击,感觉自己就是个门外汉,什么也不会,甚至连题意都理解不清。就做了两道题,但是连样例数据都跑不对......还是要继续努力。上午又结合例题更深入的理解了树状数组。基本模式:      1.改变某一元素的值,查询某一区间内所有元素的和(单点更新,区间查询)。#define Lowbit

2017-08-19 21:14:01 121

原创 2017.08.18总结

今天看了树状数组,非常抽象比较难懂。第一题:用树状数组来存储,把每个兵营的人数存在树状数组中,这道题用树状数组可以及时更新,即每次更改数组中的某个数,会刷新整个数组的值。这道题主要用了树状数组的基本操作add和sum,求区间和的时候用的是sum(i)-sum(j-1)。第二题:题意:一队人,每个人的能力值都不同,然后要有三个人打比赛,其中一个人当裁判,并且两

2017-08-18 21:00:21 124

原创 2017.08.17总结

今天看了树状数组,这是一种二进制运算,核心的代码如下[cpp] view plain copyconst int maxn=10000+5;        int n;//元素个数    int c[maxn];//c[i]==A[i]+A[i-1]+...+A[i-lowbit(i)+1]        //返回i的二进

2017-08-17 20:40:09 127

原创 2017.08.16总结

这两天主要学习了一下单调队列,研究了一下课件中单调队列的例题,并把训练二中单调队列的题目都给刷了。单调队列的算法并没有什么难度,难点就在于如何单调队列与相应的题目结合起来,不同的题目需要求的解也是不同的,其难点就相当于如何将题目所求的解如何单调队列表示出来。       其次从网上看了一下单调栈的基本知识以及相关算法,单调栈具有如下性质:       1.单调栈里的元素具有单调性。

2017-08-16 20:55:35 154

原创 2017.08.15总结

题意:在给定序列中求出一个区间,最小值是左边界,最大值是右边界。求最大区间长度。思路:存下最大值与最小值,然后枚举区间左边界,再用二分法找出满足“最小值是左边界”这个条件的最大区间的右边界编号,然后在这个区间里求出最大值,就是要求的区间了。#include #include #include #include #include using namespace s

2017-08-15 21:38:24 225

原创 2017.08.14总结

第十二题:题意:找到最大的全是1的子矩阵思路:把1想象组成一个长方形的一部分。预处理出每个数向下延伸的矩形的高度,然后就是比较以每一行为底能得到的最大矩形面积。#include #include #include using namespace std;int n,m,h[100005],top,ans;struct Node{    int h,sta;

2017-08-14 21:06:18 135

原创 2017.08.12小结

第三题:题意是一根长度为L的木棒,加热n度之后长度变为L'=(1+n*C)*L,其中C是木棒的热膨胀系数。给出L,n,C。求木棒在加热前后中心点的距离是多少。四个方程:(假设要求的距离为x)L'=(1+n*C)*Lθr= 1/2*L'sinθ= 1/2*L/rr*r= (1/2*L)*(1/2*L) + (r-x)*(r-x)第六题:题意:有n件衣服,每件衣服的含水

2017-08-12 16:51:33 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除