- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 pku2251(广度优先搜索)
我是用广搜做的,可是TLE,很郁闷,现在还没找出错误来。。。。。TLE的代码:/* * File: main.cpp * Author: Administrator * * Created on 2010年1月27日, 上午11:51 */#include #include#include#includeusing namespace std;#define Max_Size 3
2010-01-27 13:40:00 380
原创 pku2828,2182
有关逆序的pku2828/* * File: main.cpp * Author: Administrator * * Created on 2010年1月26日, 下午7:22 */#include #include#includeusing namespace std;#define N 200005struct Node{ int l,r,num;}Tree[3*N]
2010-01-26 19:55:00 349
原创 pku2367(拓扑排序)
这是一道赤裸裸的拓扑排序,题意是:首先输入n个点,表示有向图中有n个点,接下来n行,每行输入几个数字,第i行的数字表示顶点i个后继节点,当数字为0时,表示i点没有后继节点了。要求这个有向图的拓扑序列。思路:要求有向图的拓扑序列,就要对图进行搜索,所以这个算法是基于图的搜索的,可用深搜,也可用广搜基于深搜的代码:(栈为辅助数据结构)/* * File: main.cpp * Aut
2010-01-26 15:39:00 569
原创 hdu1698_Just a Hook(线段树)
开始超时,后来请教了hdu的大牛才过自己的超时版:/* * File: hdu1698.cpp * Author: Administrator * * Created on 2010年1月25日, 下午8:24 */#include #includeusing namespace std;#define N 100005struct Node { int l, r, s
2010-01-25 22:05:00 416
原创 hdu1754_I Hate It(线段树)
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月25日, 下午7:33 */#include #includeusing namespace std;#define N 200005struct Node { int l, r, _max;} Tree[N * 3];int A[N];int
2010-01-25 20:14:00 270
原创 pku2823_Sliding Window
一开始用线段树写的,超时,后来看了看大牛的双端队列版的,勉强过了,好艰辛啊。不过通过这题了解了双端队列,还是有很大收获的。线段树版(超时版)/* * File: main.cpp * Author: Administrator * * Created on 2010年1月24日, 下午2:03 */#include #includeusing namespace std;#def
2010-01-25 15:10:00 322
原创 pku2352——Stars(经典树状数组的应用)
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月25日, 上午11:05 */#include #includeusing namespace std;#define N 32005int in[N], a[N];int n = N;int Lowbit(int x)//x转化为二进制时末尾0的
2010-01-25 11:36:00 430
原创 hdu 1166_敌兵布阵_线段树版
刚才用树状数组做了下,发现可以用线段树,试着写了写,果然可以。。。。。。。/* * File: main.cpp * Author: Administrator * * Created on 2010年1月24日, 下午7:26 */#include #include#includeusing namespace std;#define N 50005struct Node {
2010-01-24 20:29:00 317
原创 hdu 1166_敌兵布阵
题目大意:敌兵有N个军营,排成一排,a[i]表示第i个军营的人数,有几种操作,当输入的是“Query i j”时,表示从第i个军营到第j个军营的人数总和,当输入 Add i j,表示第i个军营加入j个人,当输入 Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);思路:树状数组/* * File: main.cpp * Author: Administra
2010-01-24 19:09:00 291
原创 pku 3264Balanced Lineup
题目意思是:给你一组数,在给你一个范围,要你求这个范围里最大值与最小值的差。思路:用线段树做,节点保存线段的左右端点,最大值和最小值。/* * File: main.cpp * Author: Administrator * * Created on 2010年1月23日, 下午4:02 */#include #include using namespace std;#defin
2010-01-24 11:07:00 300
原创 pku 3368_Frequent values
简单说下题目意思:给你N个数,在给你一个范围[i,j],要你求出从i到j的范围里,出现次数最多的数的次数。一开始我用的是map做,肯定是超时的。map做的代码:/* * File: main.cpp * Author: Administrator * * Created on 2010年1月23日, 下午1:30 */#include #include#includeusin
2010-01-23 15:29:00 292
原创 123456789
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月22日, 下午12:02 */#include #includeusing namespace std;void Insertion_Sort(int *a,int n){ int i,j,key; for(j=2;j { k
2010-01-23 13:00:00 369
原创 hdu 1720
把十六进制转化为十进制,并进行加法运算#include#includeusing namespace std;int fun(char ch){ if(ch>=0&&ch else { ch=toupper(ch); return ch-A+10; }}int fun2(int k){ int i,ans=1; for(
2010-01-08 20:19:00 406
原创 hdu 1719
复习中,看书看烦了,刷水题解闷。。。。。#include#includeusing namespace std;int main(){ int n,i,j; while(cin>>n) { if(n==0){cout n++; while(n!=1) { if(n%2==0)n/=2;
2010-01-08 20:17:00 811 2
原创 整理的高精度算法
以前做过一些高精度的题目,可以用java的BigInteger,但是运行时间长,还是用C写高精度好,整理出了几种常用的。主要思想是用数组保存数字。 //a=a*b 大整数a* 整数 b , M进制 void mult(int *a,int b){ int w,i; int M=10000; w=a[0];a[0]=0; for(i=1;i
2010-01-04 21:19:00 333
原创 pku 1125—Stockbroker Grapevine
/*floyd算法 */#include#includeusing namespace std;#define L INT_MAXint a[105][105],max0[105];void floyd(int n){ int i,j,k; for(k=1;k for(i=1;i for(j=1;j {
2010-01-02 18:17:00 278
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人