- 博客(28)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 手写vector
因为不会构造函数,所以请在使用时先init一下。#include<bits/stdc++.h>using namespace std;class array{ public: void push_back(int x){ last->count=x; k=last; last=new unit;
2016-06-22 14:04:14 663
原创 手写queue
#include<bits/stdc++.h>using namespace std;class myqueue{ public: void push(int x){ r++; a.push_back(x); } void pop(){ if(l<=r)l++;
2016-06-21 15:44:28 339
原创 手写stack[加强版]
#include<bits/stdc++.h>using namespace std;class stac{ public: void push(int x){ a.push_back(x); len++; } void pop(){ len--;
2016-06-21 15:16:33 250
原创 POJ3283Card Hands
#include<iostream>#include<algorithm>#include<stdio.h>#include<cstring>#include<map>using namespace std;int ma[151];int ma2[151];int o,d,i,j,k[100001],n,m,a[100001][60];char s[5];int main(){
2016-06-20 17:40:54 361
原创 POJ3630Phone List[字典树]
题目大意 给你一些字符串,看有没有有字符串是其它任意一个的前缀#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;struct node{ int p1,p2; int c[10];}a[50010];int t,o,i,d,j,fla
2016-06-16 14:09:36 183
原创 POJ2406Power Strings[KMP]
给出一个串,问你这个最多是多少个相同的字串重复连接而成的。#include <cstdio>#include <cstring>using namespace std;char s[1000005];int next[1000005],i,j,l;int main(){ while(scanf("%s",&s)){ if(strcmp(s,".")==0)retu
2016-06-15 16:39:15 190
原创 POJ3461Oulipo[KMP]
题目大意 给你两个字符串,给出第一个在第二个字符串中的出现次数,注意,有多组数据。 Time Limit: 1000MS Memory Limit: 65536K 经典KMP(貌似不是的)题目,十分容易。#include <cstdio>#include <cstring>using namespace std;int t,i,j,next[1000010],an
2016-06-15 16:14:23 190
原创 NOIP2015提高组第二题信息传递[图论]
这道题我一开始做感觉没有任何思路,但一开始就觉得是图论,就在思考用邻接矩阵还是链式前向星,可是邻接矩阵每判断一次就是$O(n^2)$,在次数最多是链式前向星空间复杂度达$O(n^2)$,直接爆空间,后来仔细一想,传回来就是一个环,所以可以先把不可能的人踢了,然后就直接找所有环中最小的那个。
2016-06-12 13:52:08 2123
原创 POJ3342Party at Hali-Bula[树状DP]
http://poj.org/problem?id=3342 题目大意: 一个公司,其中第一个输入的人是老大,给你从属关系,一个人不能和一个与他(她)有直接关系的人一起加入一个晚会,问:最多有几个人参加,参加舞会的人唯不唯一? 简单树形DP,附上map和vector就容易了#include <cctype>#include <cerrno>#include <cfloat>#includ
2016-06-11 20:20:45 190
原创 POJ1463Strategic game[树形DP]
题目大意是: 有一颗树,n个节点,问,最少用几个点,让所有的点与它们中任意一个相邻#include <cctype>#include <cerrno>#include <cfloat>#include <ciso646>#include <climits>#include <clocale>#include <cmath>#include <csetjmp>#include <cs
2016-06-11 16:04:38 209
原创 POJ2486Apple tree题解
题目地址:Apple tree 题目大意: 有一个树,n个节点,第一个节点为根节点,每个点都有一个权值,每个点都可以移动到相邻的点,给你树的链接情况,求出,走k步最多获得多少权值? 输入(多数据,EOF结束): n,k w1 w2 w3……wn 以下n-1行,表示哪两个点相连。 输出: 最大值 思路:简单的树形DP#include <cctype>#include <cerrno
2016-06-11 11:33:14 406
原创 高精度算法
加法#include<stdio.h>#include<string.h>int la,lb,i,j=0,lm,n;char a[501],b[501],c[502];int main(){ gets(a); gets(b); la=strlen(a); lb=strlen(b); lm=la>lb?la:lb; for(i=1;i<=lm;
2016-06-10 14:16:00 291
原创 01背包问题
一维背包问题:采药 这是一个典型的背包问题,动态规划分分钟解决#include<bits/stdc++.h>using namespace std;int n,m,i,j,t[10001],f[10001],w[10001],ans;int main(){ cin>>n>>m; for(i=1;i<=m;i++) cin>>t[i]>>w[i]; fo
2016-06-10 14:12:55 171
原创 sscanf&sprintf讲解
sscanf&sprintf都是针对char*的函数,和输入输出差不多只不过: sscanf(char*,char*,…); sprintf(char*,char*,…); 也就是说:sscanf&sprintf是从一个字符串里读入,输出也是输出到字符串中。 如:#include<bits/stdc++.h>using namespace std;int main(){ char
2016-06-10 11:55:57 247
原创 NOI10超级玛丽游戏
#include<stdio.h>int main(){puts(" ********");puts(" ************");puts(" ####....#.");puts(" #..###.....##....");puts(" ###..
2016-06-10 11:39:47 5061
原创 手写stack
#include<vector>using namespace std;struct stac{ int l; vector<int>a; void pop(){ l--; } int top(){ return a[l-1]; } void push(int k){ a.push_back(
2016-06-07 15:06:11 416 1
原创 火星人STL题解
STL是个神奇的东西。#include<bits/stdc++.h>using namespace std;int n,m,i,a[10001];int main(){ cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=m;i++) next_permutation(a+1,a+n+1)
2016-06-06 12:51:18 471
原创 NOI835排列
思路:STL大法!!!#include<bits/stdc++.h>using namespace std;int t,n,m,i,a[100001];int main(){ cin>>t; while(t--){ cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; for(i=
2016-06-05 17:13:53 494
原创 八皇后求解
#include<bits/stdc++.h>using namespace std;int a[9]={0,1,2,3,4,5,6,7,8},s,i,j;int pd(){ for(i=1;i<8;i++) for(j=i+1;j<=8;j++) if(abs(a[i]-a[j])==j-i)return 0; return 1;}
2016-06-05 16:52:32 312
原创 POJ8466火柴棒等式
#include<bits/stdc++.h>using namespace std;int n,i,j,ans,f[100001];int main(){ cin>>n; n-=4; f[0]=6;f[1]=2;f[2]=5;f[3]=5;f[4]=4;f[5]=5;f[6]=6;f[7]=3;f[8]=7;f[9]=6; for(i=10;i<=10000;
2016-06-04 17:14:30 424
原创 POJ3264Balanced Lineup题解-线段树
#include<stdio.h>#include<iostream>using namespace std;struct node { int left; int right; int max; int min;}a[5000000];int p[5000000];void build(int l, int r, int k){ a[k].l
2016-06-04 16:19:35 259
原创 POJ1804Brainman
题目大意就是求逆序对的对数#include<stdio.h>using namespace std;int n,i,j,s,a[100001],t,l;int main(){ while(1){ s=0; scanf("%d",&n); if(!n)return 0; for(i=1;i<=n;i++)
2016-06-04 11:55:54 243
原创 合并果子快排+上浮做法
#include<algorithm>#include<iostream>using namespace std;int pd(int a,int b){ return a>b;}int i,n,s,k,p,a[10001];int main(){ cin>>n; for(i=1;i<=n;i++) cin>>a[i]; sort(a+1,
2016-06-03 17:05:26 356
原创 合并果子优先队列做法
#include<bits/stdc++.h>using namespace std;int n,i,m,k,s;int main(){ priority_queue<int>q; cin>>n; for(i=1;i<=n;i++){ cin>>m; q.push(-m); } while(q.size()-1){
2016-06-02 17:36:14 1021
CE在runtime error时怎么办?
2016-08-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人