
基本数据结构与算法
Emiyasstar__
这个作者很懒,什么都没留下…
展开
-
HDU-3791二叉搜索树
#include#include#includeint n;std::string str;std::string str1,str2,strcmp1,strcmp2;class btree{ struct node { node():v(0),left(NULL),right(NULL){} int v; node* left; node* right; };原创 2013-06-20 21:54:06 · 1443 阅读 · 0 评论 -
HDU-1241Oil Deposits
DFS入门#include#include#define N 105char map[N][N];int isvisted[N][N];int m,n;int num;int dir[][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};int DFS(int x,int y){ if(x=m|原创 2013-05-31 20:43:12 · 856 阅读 · 0 评论 -
HDU-2084数塔
#include #include #include #define N 105int map[N][N];int dp[N][N];int c,n;int main(){ //std::ifstream std::cin("1.txt"); while (std::cin>>c){ for(int k=0;k!=c;k++){ std::cin>>n; for原创 2013-05-30 21:17:51 · 830 阅读 · 0 评论 -
HDU-2048神、上帝以及老天爷
#include int n,m,i;__int64 a[22]={0,0,1,2};double s;int main() { for(i=4;i<=20;i++){ a[i]=(i-1)*(a[i-1]+a[i-2]); } std::cin>>n; while(n--){ s=1原创 2013-05-30 21:58:02 · 931 阅读 · 0 评论 -
HDU-2047阿牛的EOF牛肉串
题解http://blog.youkuaiyun.com/lostaway/article/details/5742571#include #define N 45int n;__int64 f[N];int main(){ f[1]=3; f[2]=8; for(int i=3;i!=41;i++){ f[i]=2*f[i-2]+2*f[i-1]; }原创 2013-05-30 20:33:09 · 892 阅读 · 0 评论 -
HDU-1035Robot Motion
#include#include #define MAX_ 15//#define N 0//#define S 1//#define E 2//#define W 3char gird[MAX_][MAX_];unsigned int is_vis[MAX_][MAX_];int n,m,st;int pos_x,pos_y;bool flag;bool cir原创 2013-05-15 20:39:49 · 623 阅读 · 0 评论 -
HDU -1800 Flying to the Mars
最初用的贪心思路,没问题,不过用了双重循环,果然超时了,后来换了一种思路,只要找到重复人数就可以了,反证法#include #include #define N 3005int ar[N];int n;bool pred(int val){ return val!=0; }int main(){ while (std::cin>>n){ for(int i=0原创 2013-05-14 21:41:16 · 795 阅读 · 0 评论 -
HDU-1305 Immediate Decodability
#include #include #include #include class biary_tree{ struct node_t { bool flag; node_t* left; node_t* right; node_t():flag(false),left(NULL),right(NULL){} };public: biary_tree()原创 2013-05-13 22:15:24 · 744 阅读 · 0 评论 -
HDU-4545魔法串
#include #include int t,m;char hash[27];std::string str1,str2;char a,b;int pos1,pos2;int idx;int main(){ while (std::cin>>t){ for(int i=0;i!=t;i++){ std::cin>>str1>>str2; std::cin>>原创 2013-05-27 20:24:22 · 1081 阅读 · 0 评论 -
HDU-2026首字母大写
水啊水,求排名 前10000其实一种情况未处理,第一个空格以后的单词有bug,不过数据太弱,没查出来#include #include std::string str;int size;int pos1,pos2;int main(){ while (std::getline(std::cin,str)){ if(isalpha(str[0])){ str[0]原创 2013-05-11 22:08:24 · 995 阅读 · 0 评论 -
HDU-1425sort
第一次使用bitset ,结果竟然超时了,不管了#include #include std::bitset ar;int n,m,tmp;int idx;int main(){ while (std::cin>>n>>m){ for(int i=0;i!=n;i++){ std::cin>>tmp; ar[tmp+500000]=1; } f原创 2013-05-11 16:42:58 · 818 阅读 · 0 评论 -
HDU-2033人见人爱A+B
#include int t; struct Time{ int h; int m; int s; Time():h(0),m(0),s(0){}};Time a,b,c;Time add_Time(const Time& l,const Time& r){ int carry(0); Time c; if((c.s=l.s+r.s)>59){ c.s=c.s原创 2013-05-11 15:55:07 · 862 阅读 · 0 评论 -
HDU-2846Repository(字典树)
TLE状态#include #include #include #include class dr_tree{private: typedef struct node { bool flag; node* next[26]; node() { flag=false; for(int i=0;i!=26;i++){ next[i]=NULL;原创 2013-05-10 16:27:08 · 717 阅读 · 0 评论 -
HDU-1434幸福列车
链表模拟 ,优先队列,链表合并,加上恶心的WA....#include #include #include #include #include #include #include struct passger{ friend bool operator<(const passger& l,const passger& r); std::string name; int原创 2013-05-09 19:57:55 · 1469 阅读 · 0 评论 -
HDU-1969pie
二分搜索#include#include #define N 10005double pi=acos(-1.0);int t;int n,f;int r;double pie_v[N];double sum,v,max_v;bool test(double x){ int f_t(0); for(int i=0;i!=n;i++){ f_t+=(int)(原创 2013-05-09 15:10:12 · 773 阅读 · 0 评论 -
HDU-3006The Number of set
#include#include#include#define N 105int n,m;unsigned short ar[N];int n_set;int tmp;unsigned short set[10000000];unsigned short set_;int idx;int idx_n;void creat_set(int dep){ if(dep>原创 2013-05-08 20:35:59 · 728 阅读 · 0 评论 -
poj-1193内存管理
#include#include#includeint n,t,m,p;int wt_num;struct PEB{ friend bool operator<(const PEB& l,const PEB& r); int start; int mem; int st_m; int ed_m; int time; int cpu_time;};bool ope原创 2013-05-06 22:37:49 · 1012 阅读 · 0 评论 -
HDU-2049不容易系列之(4)——考新郎
组合+错排#include int c,m,n;long long f[21];long long C(int n,int m){ long long sum=1; int j=1; for(int i=n;i>=n-m+1;i--){ sum=sum*i/j; j++; } return sum;}int main(){ f[1]=0; f[2]=原创 2013-05-31 21:39:46 · 1353 阅读 · 0 评论 -
HDU-2046骨牌铺方格
#includeint n;long long f[52];int main(){ f[1]=1; f[2]=2; for(int i=3;i!=51;i++){ f[i]=f[i-1]+f[i-2]; } while (std::cin>>n){ std::cout<<f[n]<<std::endl; }}原创 2013-05-31 21:20:31 · 784 阅读 · 0 评论 -
HDU-2925Musical Chairs
常规解法,结果悲剧超时了#include#includeint n,d;std::list chairs;typedef std::list::iterator litr;litr itr;int pos1,pos2;int main(){ while (std::cin>>n>>d&&n&&d){ for(int i=0;i!=n;i++){ chairs.pu原创 2013-06-02 21:36:17 · 1045 阅读 · 0 评论 -
HDU3785-寻找大富翁
STL最大堆算法http://blog.youkuaiyun.com/fdl19881/article/details/6685744#include#include#include#include#includeint n,m;std::vector men; int in;int main(){ while (std::cin>>n>>m&&(m!=0||n!=0)){原创 2013-06-19 21:38:22 · 1222 阅读 · 0 评论 -
HDU3763CD
TLE超时用scanf神奇的解决了。。。用set超内存,囧,二分解决了果然ACM好变态,老老实实用最原始的方法#include#include#include#include#include#define N 1000005int m,n;int tmp;int ja[N];int nsell;bool serach(int v){ int st=0,ed=原创 2013-06-19 20:04:06 · 1014 阅读 · 0 评论 -
2149 Public Sale (巴什博弈)
#includeint m,n;int main(){ while (std::cin>>m>>n){ if(m%(n+1)==0){ std::cout<<"none"<<std::endl; }else{ if(m<=n){ std::cout<<m; for(int i=m+1;i!=n+1;i++){ std::cout<<" "<<原创 2013-06-18 22:22:58 · 1006 阅读 · 0 评论 -
2043密码
#include#includestd::string str;std::string cmp("~!@#$%^");int ar[4];int idx;int m;int main(){ while (std::cin>>m){ for(int i=0;i!=m;i++){ std::cin>>str; for(int i=0;i!=str.size();i+原创 2013-06-18 21:21:17 · 862 阅读 · 0 评论 -
HDU 笔记
hdu 1050 简单模拟hdu 1051 贪心hdu 1566 区间树,区间操作hdu 1702 基本栈操作hdu 2072 水题 ,字符串统计hdu 2795 线段树hdu 2846 字典树hdu 3006 位运算+枚举原创 2013-05-05 21:07:24 · 711 阅读 · 0 评论 -
HDU-1228A+B
#include#include#includestd::string str;std::map num_map;int a,b;int idx;int main(){ num_map.insert(std::make_pair("zero",0)); num_map.insert(std::make_pair("one",1)); num_map.insert(std::原创 2013-06-06 19:57:51 · 1119 阅读 · 0 评论 -
HDU-1177"Accepted today?"
#include#include#include#include#define N 150int n,g,s,c,m;int tmp,ht,mt,st;struct play{ int idx; int n; int t;};play plays[N];int idx;bool cmp(const play& l,const play& r){ if(l.原创 2013-06-06 21:03:01 · 913 阅读 · 0 评论 -
HDU-3786找出直系亲属
#include#include#includeint ar[27][2];int m,n;std::string str;//int depth;int dfs(int n,int r,int d){ d++; if(n==27||n==0){ return 0; } if(ar[n][0]==r||ar[n][1]==r){ return d; } int原创 2013-06-05 22:15:12 · 1619 阅读 · 0 评论 -
HDU-3784继续xxx定律
#include #define N 1005int n;int nar[N];int ar[N];int out[N];int tmp;int idx;int main(){ while (std::cin>>n&&n){ for(int i=0;i!=n;i++){ std::cin>>tmp; nar[i]=tmp; ar[tmp]=1; }原创 2013-06-05 20:33:29 · 1262 阅读 · 0 评论 -
HDU-2094产生冠军
#include#include#include#include int n;std::map peo;typedef std::map ::iterator m_itr;std::string str1,str2;m_itr itr;std::string win;int w_n;int main(){ //std::fstream fin("1.txt"); wh原创 2013-06-05 16:30:08 · 1076 阅读 · 0 评论 -
HDU-1026Ignatius and the Princess I
#include#include#include#include#include#define N 105#define M 1000struct point{ friend bool operator==(const point&l ,const point& r); friend bool operator<(const point&l,const point&r);原创 2013-06-04 22:46:15 · 973 阅读 · 0 评论 -
HDU-2057A + B Again
#include#include#includestruct num_t{ int flag; std::string str;};int conv(char c){ if(c>='0'&&c<='9'){ return c-'0'; }else{ return c-'A'+10; }}char r_conv(int n){ if(n<10){ ret原创 2013-06-03 23:06:37 · 1310 阅读 · 0 评论 -
HDU-4544湫湫系列故事——消灭兔子
#include#include#include #include#include #include#include#define N 200005int n,m;struct node{ int w; int p;};std::vector nodes;node tmp;long long sum;std::priority_queue , st原创 2013-06-03 21:15:28 · 1024 阅读 · 0 评论 -
HDU-2045不容易系列之(3)—— LELE的RPG难题
题解:http://blog.youkuaiyun.com/jiahui524/article/details/6620997#include #define N 55int n;long long f[N];int main(){ f[1]=3; f[2]=6; f[3]=6; for(int i=4;i!=51;i++){ f[i]=f[i-1]+2*f[i-2]; }原创 2013-06-03 19:39:25 · 899 阅读 · 0 评论 -
HDU-2602Bone Collector
#include#define N 1005struct bag{ int v; int p;};int t;int n,v;bag bags[N];int dp[N];int main(){ while (std::cin>>t){ for(int k=0;k!=t;k++){ std::cin>>n>>v; for(int i=0;i!=n;i+原创 2013-06-02 20:26:09 · 801 阅读 · 0 评论 -
HDU-1287破译密码
#include#includestd::vector mys;int n;int tmp;char ar[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";int main(){ while (std::cin>>n){ for(int i=0;i!=n;i++){ std::cin>>tmp; mys.push_back(tmp); }原创 2013-06-02 17:06:12 · 1163 阅读 · 0 评论 -
HDU-1282回文数猜想
#include#includeint n;int rn;int idx;int tmp;std::vector trans;int main(){ while (std::cin>>n){ trans.push_back(n); while (true){ tmp=n; while (tmp!=0){ rn*=10; rn+=tmp%10;原创 2013-06-02 16:14:43 · 978 阅读 · 0 评论 -
HDU-1218七夕节
筛选法,类似于素数的筛子法则,另一种就是暴利算法参考http://blog.sina.com.cn/s/blog_71ded6bf0100skxf.html#include#define M 500001int ar[M];int t,n;int main(){ for(int i=1;i!=M;i++){ ar[i]=1; } for(int i=2;原创 2013-05-05 20:25:58 · 855 阅读 · 0 评论 -
HDU-1097A hard puzzle
找规律,太疼了,这题,常规算法超时,另外注意ab取值范围#includelong long a,b;long long ar[4];int main(){ while (std::cin>>a>>b){ ar[0]=a%10; ar[1]=(ar[0]*a)%10; ar[2]=(ar[1]*a)%10; ar[3]=(ar[2]*a)%10; b=b%4;原创 2013-05-05 17:08:28 · 881 阅读 · 0 评论 -
HDU-1028Ignatius and the Princess III(母函数)
http://www.cnblogs.com/freewater/archive/2012/09/11/2679734.html代码参考#include#define MAX_ 10001int p;int c1[MAX_],c2[MAX_];int n;int main(){ while (std::cin>>p){ for(int i=0;i<=p;i++原创 2013-05-03 19:50:37 · 742 阅读 · 0 评论