- 博客(41)
- 收藏
- 关注
原创 msp430g2553单片机 感应温度的呼吸灯
//程序烧进板子后先进入led灯交替闪烁的待机模式;按下按键后,进入应用模式,绿灯开始呼吸;此时温度上升后绿灯呼吸加快,温度下降后呼吸又会变慢。当温度过高时红灯亮#include "msp430g2553.h"#define LED1 BIT0#define LED2 BIT6#define
2014-04-16 16:28:14
6373
1
原创 表达式求值 c++ 增加积分功能
//// main.cpp// project4//// Created by 张 云东 on 14-4-15.// Copyright (c) 2014年 张云东. All rights reserved.//#include #include using namespace std;#define SIZE 100#d
2014-04-16 16:17:41
515
原创 POJ1160
用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。1 ,1 。 解题思路:明显的区间DP了。当P=1时:中位数问题 问题转化为:将总区间划分成P个区间之和。设状态f[i, j]表示在前j个村庄设立i个邮局。转移方程: f[i,j]=min(f[i,j],f[i-1,k]+d[k+1,
2013-04-19 16:59:25
636
原创 POJ 2002 Squares
题目大意:给出平面上n (1 个点,问以它们为顶点能组成多少个正方形? 思路分析:hash每次枚举正方形两个相邻的点,计算出另外两个点,然后用Hash判断是否存在即可~这里有篇写的很详细的解题报告,不了解hash的可以去看看载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304779855我这里解决冲突并
2013-03-23 11:13:49
514
原创 poj 2559 Largest Rectangle in a Histogram
题目大意: 在直方图中找出最大矩形其中小矩形(宽为1)的个数为N,N 思路分析:枚举每个宽为1的小矩形,算出往左它最多能扩展到l,往右最多能扩展到r,那么最后只要枚举一遍i,找出最大的(r-l+1)*h即可具体如何来算l和r呢,单调队列。维护一个从小到大排序的队列,从队尾加入元素时遇到比该元素大的就让其出队,并计算该出队元素的L(或R)。顺着扫可以算出r[i],倒着
2013-03-20 19:29:23
420
原创 POJ 3250 Bad Hair Day
题目大意: 有n头牛头站成一列。每头牛有必然的高度,并且能看到其前面高度比它低的牛的头顶,直到被某头高度大于等于它的牛所挡住。求每头牛能看到的牛头顶的数量之和。 思路分析:单调队列。从左往右扫,从队尾加入元素时遇到比他小的就删掉,每加入一次统计一次队列的长度 #includeint a[80010],f[80010];int main(){ int n,i
2013-03-20 14:44:25
648
原创 POJ 2823 Sliding Window
题目大意:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k求:f(i)=max{a(i-k+1),a(i-k+2),...,a(i)},i=0,1,...,N-1 以及g(i)=min{a(i-k+1,a(i-k+2),...,a(i)} 思路分析:单调队列 1)插入操作:从队尾开始查找,把队尾小于待插入元素的元素全部删除,再加入待插入的元素。这
2013-03-17 14:27:12
434
原创 POJ1962 Corporative Network
#include#includeint p[20010],d[20010];int n;int find(int x){ int i; if (p[x]==x) return x; i=find(p[x]); d[x]+=d[p[x]]; p[x]=i; return p[x];}void hebing(int x,int y){ //int l;
2013-03-10 23:51:04
389
原创 POJ 1861 Network
题目大意:给一个图,求一个最小生成树,输出其中最大的边,并且要求这个最大的边能尽量小,再输出选择的边。 思路分析:要求最大的边尽量小,kruskal无疑是最佳选择了 代码:#includestruct pp{ int x,y,z; }a[15500]; int n,m,ans,ansl;int p[1050];vo
2013-03-10 11:30:39
407
原创 BIT1083 I Hate It
题目大意: 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0学生 ID 编号分
2013-03-08 11:28:25
400
原创 BIT 1095 Sightseeing trip
题目大意:给出N个点(N 考察点:floyd 思路分析: 一个环中的最大结点为k(编号最大),与他相连的两个点为i,j,这个环的最短长度为g[i][k]+g[k][j]+i到j的路径中,所有结点编号都小于k的最短路径长度根据floyd的原理,在最外层循环做了k-1次之后,dist[i][j]则代表了i到j的路径中,所有结点编号都小于k的最短路径。综上所述,该算法一定能找
2013-02-22 20:51:56
376
原创 BIT 1061 Ubiquitous Religions
题目大意:有N个人(N 考察点:并查集 思路分析:赤裸裸的并查集。。 #includeint p[50001];int find(int x){ if (p[x]==x) return x; else return p[x]=find(p[x]);}int main(){ int n,m,x,y,i,ans,t; t=0;
2013-02-21 10:46:34
213
原创 BIT 1054 Largest prime factor
题目大意:在素数表中,2的编号是1,3的编号是2,5的编号是3。现在给出N(N 考察点:筛选法求素数 思路分析:在做筛选法的时候开个数组记录他的最大质因子就行了,这个数是由哪个数的倍速筛出来的,那这个数的最大的质因子就是它。 #includeint f[1000001];void yuchuli(){ int i,s,j; memset(f,0,
2013-02-21 10:25:18
220
原创 BIT 1094 Ahui Writes Word
题目大意:给你N个字符串(N 考察点:DP 思路分析:虽然一眼就知道是个01背包,但是一开始看到N和C的范围傻眼了。。后来再看c[i]跟v[i]的范围,可以发现这其中肯定有大量重复的,所以01背包就转变成多重背包啦 #include#define max(x,y) (x)>(y)? (x):(y)int c[15][15];int f[10010];char st
2013-02-21 09:59:34
206
原创 BIT 1057 SUM
题目大意:给出一个数字N(N 考察点:数论 思路分析:与n不互质的数的和我们不太好求,反过来,求与n互质的数的和我们就可以利用欧拉函数来求了。在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 那
2013-02-20 21:24:27
259
原创 BIT 1093 Bomb
题目大意:给出数字N(N 考察点:数位DP 思路分析:关于数位DP,这里有一篇比较好的文章http://blog.youkuaiyun.com/cmonkey_cfj/article/details/7798809 接下来是关于这道题,我们用f[i][0]表示所有i位的数中不含49的个数,f[i][1]表示不含49,但是头是9的数,f[i][2]表示含49的个数。那么我们可以得到以
2013-02-20 19:49:59
231
原创 BIT 1092 Matrix Multiplication
题目大意:给出两个n*n的矩阵A,B(n 考察点:?? 思路分析:如果暴力算的话,两个n*n的矩阵要用n^3的复杂度,肯定超时。若AB=C,那么XAB=XC,这样的话我们可以构造一个行向量X,X(1*N),这样的话N^3的复杂度就降到N^2了 #includelong long n;long long a[510][510],b[510][510],c[510][
2013-02-20 15:19:26
239
原创 BIT 1088 车厢重组
题目大意:给你N个不同的数(N 考察点:归并排序求逆序对数 思路分析:为什么这题是要求逆序对数呢?我们可以用数学归纳法来证明。当n=2的时候,1 2, 2 1,显然逆序对数等于最少交换次数假设当n=k的时候,a1,a2.....ak的逆序对数是m,最少交换次数也为m,当n=k+1的时候,假设逆序对数为m+t,即原序列中有t个数比第k+1个数大,那么我们可以先通过m次
2013-02-20 10:23:15
781
原创 BIT 1011 Maximum Sum II
题目大意:给出n(n 考察点:单调队列 思路分析:要求长度不超过k的最大连续子序列和,就是求max(s[j]-s[i]),j-i>k,也就是对于每个j,我们要找出最小的i,进而求出在j之前最大的和。那么如何找i呢,就需要用单调队列了。单调队列即保持队列中的元素单调递增(或递减)的这样一个队列,可以从两头删除,只能从队尾插入。单调队列的具体作用在于,由于保持队列中的元素满足单调性
2013-02-18 21:23:45
315
转载 BIT 1063 食物链
唉,这题一开始开了个二维数组写了半天乱搞还是没写出来,看来并查集还是学的一知半解。这里有一篇关于这题讲的很详细的博客,推荐一下,http://blog.youkuaiyun.com/c0de4fun/article/details/7318642。
2013-02-18 20:37:03
217
原创 BIT 1046 Leftmost Digit
题目大意:求n!(1 考察点:数论 思路分析:这题参考了伟神的博客http://blog.youkuaiyun.com/zhangwei1120112119/article/details/8565684 斯特林公式,则lgn!=lg(sqrt(2*pi*n))+n*lg(n/e) 算出lgn之后,因为整数部分与最高位无关,所以取小数部分做幂运算即可。 要注意的是当n比
2013-02-18 10:54:03
230
原创 BIT1047 Fibonacci Numbers
题目大意:求斐波那契数列的第n项对p取余的值(n,p 考察点:数论 思路分析:参考了http://xuyemin520.is-programmer.com/posts/26398.html。构造一个2 x 2的矩阵,使得它乘以(a,b)得到的结果是(b,a+b)。每多乘一次这个矩阵,这两个数就会多迭代一次。那么,我们把这个2 x 2的矩阵自乘n次,再乘以(0,1)就可以得到第n
2013-02-17 15:19:33
187
原创 BIT1044 A^B mod C
题目大意:Given A,B,C, You should quickly calculate the result of ABmod C.(1 考察点:快速幂 思路分析:这题参考了http://wenku.baidu.com/view/a1d05c8171fe910ef12df8b9.html和http://chensmiles.blog.163.com/blog/static/1
2013-02-17 10:46:09
292
原创 BIT1026 Til the Cows Come Home
题目大意:n(n个地点,m(m条路,给出m个x,y,z代表x和y间有长为z的路,求从地点1到地点n的最短路 考察点:最短路 思路分析:没什么分析的吧。。这个太明显了。Dijkstra和spfa还有其他的bellman_ford什么的都行 #include#includeint n,m;int h[2010],a[2010];int next[4020],v[4020
2013-02-15 16:38:35
190
原创 BIT 1024 载重问题
题目大意:城市的平面图已给定, n个路口标号为 1到 n,路口之间的每条街道都标有承重限制。任务是找出从路口 1(李凌所在地)到路口 n(客户所在地)的道路上的最大承重能力。假定至少存在一条这样的道路。每条街道都可以双向行驶。 考察点:dijkstra 思路分析:一开始就想到了dijkstra,但是一直写不好,主要是扩展节点的时候不知道该怎么扩展。后来参考了伟神
2013-02-15 16:36:25
229
原创 BIT 1021 Pascal's Travels
题目大意:一个n*n的矩阵格子(4 考察点:DP 思路分析:逆推一下,从(N,N)到(1,1),那么f[i][j]=f[i-a[i][j]][j]+f[i][j-a[i][j]](f[n][n]=1) 这题在BITOJ上死活A不了。。总是RE,至今也不知道为什么。跑到pku上就A了。。。 #includeint a[40][40];long long f[40
2013-02-15 16:29:51
174
原创 BIT 1020 小白鼠
题目大意:有 n个瓶子,已知其中有且仅有一个瓶子的饮料有毒,用足够多的小白鼠做测验,为了加快测试速度,我们每次可以把来自若干个瓶子的测试样本混在一起,喂给小白鼠。如果小白鼠喝了有毒的饮料,即死。现在给你每个瓶子的饮料有毒的概率(和总是 100%),问以最优策略(测试次数尽可能少)执行,期望的测试次数是多少 考察点:哈夫曼树 思路分析:参考http://www.doc
2013-02-15 16:00:52
300
原创 BIT 1018 没有上司的聚会
题目大意:某公司有 N个成员,编号为 1~N。他们有从属关系,也就是说他们的关系就像一棵以公司总经理为根的树形结构,父结点就是子结点的直接上司。每个成员有一个快乐指数。现在有个周年庆宴会,要求与会成员的快乐指数最大。但是,没有成员愿和直接上司一起与会,也就是说要保证参加宴会的人中没有一个人是另一个人的直接上司。 考察点:树形DP 思路分析:f[x,0]表示x不参加能达到的最
2013-02-15 15:58:45
339
原创 BIT 1017 To the Max
题目大意:给出一个二维矩阵,每个位置都有一个整数,要求最大子矩阵和。 考察点:DP 思路分析:又是一道经典题。我们可以先处理一个sum[i][j],表示第i列第一个元素到第j个元素的和,那么sum[i][j]-sum[i][k]就是第i列从第k行到第j行的和,处理出k到j的每一个这样的和,再用一次最大连续子序列和,即为第k行到第j行的最大子矩阵和。#include#defin
2013-02-15 15:55:10
196
原创 BIT 1016 滑雪
题目大意:给一个二维矩阵,里面的数代表高度。现在你要滑雪,并且要滑一条最长的道,你可以从任何一个点开始,滑的时候只能从高地往低地滑,现求最长长度。 考察点:记忆化搜索 思路分析:其实这题做法很多。。可以记忆化搜索,也可以快排+DP。记忆化搜索就是搜到某个点的时候把这个点的状态记录下来,这样当第二次搜到这个点的时候可以大量的剪枝。。#include#define max(x,y
2013-02-15 15:53:38
171
原创 BIT 1015 Edit Distance
题目大意:给你两个字符串,他们之间的距离定义为从A变为B至少要多少步。每一步可以是下面三种之一:(1)增加一个字符;(2)删除一个字符;(3)把其中一个字符改为另一个字符。现给定两个字符串以及他们的长度(),求他们的距离。 考察点:DP,字符串匹配算法。 思路分析:d[I,j]=min(d[i-1,j]+1,d[I,j-1]+1,d[i-1,j-1]+1(s[i]或d[I,j]
2013-02-15 15:52:16
216
原创 BIT 1014 Big Event in BIT
题目大意:给出N个物品(n),每个物品的价值为v(v),数量为m(m,现要将他分成尽可能相等的两份,求最后这两份的价值。 考察点:DP 思路分析:这是一个多重背包问题,总价值除以2就是背包的容量,剩下的就是老东西了。。。 #include#define max(x,y) (x)>(y)? (x):(y)int f[250001],w[101],s[101];i
2013-02-15 15:11:38
223
原创 BIT 1013 Bone Collector
题目大意:给出N(N)根骨头,每个有其体积和价值,再给你一个体积为V的背包,求能装下价值最多多少骨头。 考察点:DP 思路分析:动态规划。F[j]=max(f[j],f[j-w[i]]+v[i])); #include#define max(x,y) (x)>(y)?(x):(y)int main(){ int k,t,n,i,j,v; long i
2013-02-15 15:05:46
184
原创 BIT 1010 Maximum Sum
题目大意: 给出一个长度为N的数列(N),数列中每个数|ai|,求最大连续子序列的和。 考察点:DP 思路分析:f[i]=max(f[i-1]+a[i],0),f[i]表示到第ai的最大和 两次AC。。。漏了特判全负数的情况#include#define max(x,y) (x)>(y)?(x):(y)int main(){ int n,i,j,t,k,
2013-02-15 15:00:41
246
原创 BIT 1008 Putting Apples
题目大意:有N个苹果要放进K个篮子里(n,k,可以有篮子是空的,问有多少种方法。(2,1)和(1,2)属于同一种 考察点:DP 思路分析:状态转移方程,我们假设f[i][j]表示有i个苹果放入j个篮子里,那么f[i][j]=f[i][j-1]+f[i-j][j],意思就是先考虑留一个空篮子,那么就是f[i][j-1],那么只要再加上一个空篮子不留的就行了,即f[i-j][j]。此二
2013-02-15 14:58:04
274
原创 BIT 1007 Number Converter
Bit 8题目大意:给出十进制下的N(0),求在K(k下的表示。 考察点:模拟 思路分析:进制转换没什么好说的吧。。。 两次AC。。第一次忘记判0了。。。#includeint main(){ long int n; int k,i,j; int a[50]; while (scanf("%d %d",&n,&k)!=E
2013-02-15 14:56:14
190
原创 BIT 1006 The most frequent number
题目大意:给你N(N)个数,每个数大小在10^-9到10^9之间,问其中出现频数最高的是哪个数?并输出其中数值最小的那个 考察点:排序? 思路分析:排序一次后,从前往后扫一遍就行。。。。 交了N次才AC。。一开始想用哈希做,结果小细节一直没写好。。后来发现直接快排就行。。于是就A了。。 #include#includelong int a[100002];
2013-02-15 14:52:26
247
原创 BIT 1005 穿越沙漠
题目大意:汽车一次能装载500升油,每升油能走1公里,在起点A有用不完的油。现在告诉你终点B离A的距离S(S),问最少需要多少升油能让他从A到B。 考察点:逆推,数论 思路分析:这题参考了解题报告http://blog.youkuaiyun.com/zhangwei1120112119/article/details/8501270首先,我们要确定两个最优原则:(1) 每个油
2013-02-15 14:50:43
379
原创 BIT 1004 Who is the Smartest Man
Bit 5题目大意:给你曹操的攻击力和N(N)个小怪,每战胜一个攻击力比他低的小怪他的攻击力就加1,战胜一个攻击力比他高的小怪就加2。现在给出N个小怪的攻击力,请问他最后的攻击力最高是多少 考察点:贪心 思路分析:显然,把小怪攻击力排序一下,先打攻击力比自己高的小怪中攻击力最低的那个,最后再打攻击力一开始就比自己低的。 交了三次AC。。输入有多组数据,没打while。。
2013-02-15 14:47:32
325
原创 BIT 1003 Exchange for Cola
题目大意:你有N个可乐盖子,可以用A个盖子去换B瓶可乐。你可以向MM同学借任意多个瓶子,但是你一定要保证能按原数还给他。问你最多能喝到多少瓶可乐。 考察点:模拟,找规律(?) 思路分析:我们先将手中的N个盖子全换成可乐,对应的又会得到一些可乐,然后我们再用剩下的盖子和新得到的盖子去换可乐。。。这样一直下来之后,我们最多用log2N的复杂度换到不能再换,必须要借助MM同学了。假设我们
2013-02-15 14:43:44
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人