- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 二维树状数组
不用++的话一直超时,也不知道为什么~没找出问题As the name says, this problem is about finding the number of points in a rectangle whose sides are parallel to axis. All the points and rectangles consist of 2D Cartesia
2017-01-26 20:50:46 169
原创 树状数组
树状数组。原数组为a[n],树状为s[n].主要用于区间的查找与增删除,复杂度为logn。c[1]=a[1]c[2]=a[1]+a[2]~转换二进制10c[3]=a[3]c[4]=a[1]+a[2]+a[3]+a[4]~转换二进制100c的下标转换为2进制,后面有几个0就代表其包含了从其开始前面有多少个数。#include #include #include us
2017-01-21 23:40:27 127
原创 USACO 2.2Runaround Numbers
the reaon of failure:1、英文太low,英文太low,英文太low,题目都看不懂啊!!Runaround numbers are integers with unique digits意思是这个数是整数with unique digits 数字都是唯一的,意思就是不能有重复的数字在这个整数里。 you have ended up back where you s
2017-01-17 16:01:17 191
原创 USACO 2.2 Subset Sums
the reason of failure:1、刚开始用的0/1枚举的方法,结果超时。2、然后用dfs找,从1开始到n,加起来如果大于等于t1,那么剩下的不找了,这样稍微运算量少一点,但还是超时,自己判断复杂度的能力是真的差啊。t1是从1到n的和除2如找4的所有和相同的子集。1 2 3此时大于5,则3后面的数全部不找了,递归回去。1 3 4此时大于5,则4后面也不找了。1
2017-01-16 19:46:37 278
原创 USACO 2.2
一遍过。就是用重复计算的思想,写一个函数,这个函数就是判断一个数字用到哪些数几次,然后是通过递归判断值在哪个范围,用一个函数就可以重复计算,是枚举的算法,时间耗费有些大。代码:/*ID: mePROG: prefaceLANG: C++*/#include#include #include #include using namespace std;int q2[
2017-01-16 15:40:28 119
原创 USACO 2.1
the reason of failure:1、考试前看了一遍题意,但是不知道为什么提交失败了,不是答案错误,然后今天直接一遍过。thinking:可以2个for嵌套,for(i=1;i然后用qsort排序,对分数a>b排序就相当与a的分子*b的分母>b的分子*a的分母来排。learning:1、对分数排序,分数大小比较的方法。2、qsort的第二个变量是长度而不是数组+长度,so
2017-01-16 11:24:32 220
原创 寒假第一个西北工业大的新生水赛。<全水>
the reason of failure:1、不会保留2位数字的输出。2、边界问题,C题的,当两个时间相同的时候输出的应该是什么。3、大于小于号弄错了,在A题的对‘U’边界的判断,应该是>=n,确保判断的那一行小于总行数n。4、对矩阵的行列弄反了,应该细心判断。5、矩阵反转的时候,行与列都已经发生了改变,再变化应该使用反转得到后的行与列,而不是用最初矩阵的行与列。learni
2017-01-16 10:36:49 359
原创 USACO Hamming Codes 2.1
一遍过。但是题意是百度出来的。。看来英语还是太烂太烂了。题意是:对于给出的例子从0000000开始,找出下一个密码,是0000111,再找下一个,这个是必须既和0又和7符合密码规则的密码。thinking:1、直接DFS深搜,然后把之前的重复判断一遍代码:/*ID: mePROG: hammingLANG: C++*/#include#include #include
2017-01-15 14:23:44 239
原创 USACO 2.1 Healthy Holsteins <0/1枚举>
the reason of failure:1、0/1问题取的值是哪一个是需要注意的。thinking:直接0/1枚举全部代码:/*ID: mePROG: holsteinLANG: C++*/#include#include #include #include using namespace std;int qq[500][30];int a1[30];boo
2017-01-14 20:39:15 195
原创 HDU 1698 <线段树+更新区间>
the reason of failure:1、多组数据,所以每次输出的值sum需要赋值0,然后才把金属棒的值相加后输出。2、!!!看好输出的样例,不简简单单只是输出个答案,而是输出一串。thinking:用一个值来表示每个线段的值,当为各种值的时候其为0,当这个线段只为一种颜色的时候,其不为0。对于更新时,当这个线段非0,那么把其两个son结点的k变为这个结点的k,然后把这个结点的k
2017-01-02 11:31:53 208
原创 基础位运算。
& 按位与,表示2个二进制数相应的位都为1则为1,否则为0,这一位一假为假 | 按位或,表示2个二进制数相应的位如果有1则为1,这一位一真为真 ^ 按位异或,表示2个二进制数相应的位如果相同则为0,不同为1。 ~ 取反,表示取反,所有0变成1,所有1变成0#include using namespace std;int main(){ int n
2017-01-02 09:31:08 246
原创 HDU1754 <线段树创建,查找,更新>
the reason of failure:1、又一次被cin的速度坑了!!!注意大数据要用scanf的输入方法啊。learning:1、线段树是用来干嘛的,是可以找区间最大最小值或者和之类的值的。thinking:每次这个线段的max1取max(max1,weight)。也就是判断改变的这个值,是否大于这个线段的max1,如果大就更改。代码:#include#include
2017-01-01 20:24:46 191
原创 USACO 2.1 <枚举>
the reason of failure:1、交换的值是数组中的值,而不是其下标。题意:给一个数N,接下来N行有N个数,这些数是乱序了的1,2,3,问如何用最小的交换次数把他们按升序排序。thinking:找出所有1次交换就能使得2个数字位子正确的交换,然后剩下的那些数交换需要a/3*2次。代码:/*ID: mePROG: sort3LANG: C++*/#incl
2017-01-01 17:54:21 177
原创 考试未完品
The original version of this problem (in Spanish) can be found athttps://www.dc.uba.ar/events/icpc/download/problems/tap2013-problems.pdf]Horace likes to play writing natural numbers in the blackboa
2017-01-01 14:09:15 201
R语言的简单使用
2018-08-20
Svm支持向量机详细内容
2018-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人