- 博客(13)
- 收藏
- 关注
原创 采药(洛谷简单dp背包问题)
#include#include#include#includeusing namespace std;const int maxn= 1000+10;int dp[maxn],t[maxn],c[maxn];int main(){ int i,j,k,m,n; scanf("%d%d",&n,&m); for(i=1;i<=m;i++){ scanf("%d%d",&t
2016-08-30 20:51:04 672
原创 最小生成树
最近学了一下最小生成树。。。发发code#include#include#include#includeusing namespace std;const int maxn=1000;struct edge{//定一个结构体来存起点,终点和边权,便于后面的将边权排序; int u,v,w;}a[maxn];int f[maxn];//并查集使用; int n,m;int c
2016-08-27 19:36:50 522
原创 bfs解救小哈
#include#include#include#includeusing namespace std;int mi=99999999999;int xb,yb,xe,ye;const int maxn=51;int a[maxn][maxn],book[maxn][maxn];int move[4][2]={{1,0},{-1,0},{0,1},{0,-1}};//方向数组
2016-08-27 16:37:30 828
转载 划分树
转自大神的详解: http://www.2cto.com/kf/201210/160552.html用划分树来解决选定区间内的第K大值,其实也就两步!一步是建树,另一步则是查询。 先说我对建树的理解吧! 建树的过程很简单:两步就OK了! 第一步:找到序列的中位数,把大于中位数的扔到中位数的左边,小于中位数的扔到数的右边。这样整个序列就被分成了两个区间。
2016-08-27 15:35:29 667
转载 各种排序方法
//堆排序#include#includeint a[100010],len=0;void insert(int x){ a[++len]=x; int k=len,t; while(k>1 && a[k]<a[k/2]){ t=a[k];a[k]=a[k/2];a[k/2]=t; k=k/2; }}int main(){ int i,j,k,m,n,t; sca
2016-08-27 15:22:26 610
转载 RMQ算法
#include #include #define maxn 10005using namespace std;int maxsum[maxn][20], minsum[maxn][20];void RMQ(int num) //预处理->O(nlogn) { int i, j; for(j = 1; j for(i = 1;
2016-08-27 15:20:34 500
原创 dfs解救小哈
在《啊哈!算法》中看到了这道题,准备敲敲代码。。。题意就是 0可以走,1不能走,输入起点和终点,找到到终点的最小步数。#include#include#include#includeusing namespace std;const int maxn=51;int a[maxn][maxn],book[maxn][maxn];//book为标记数组;可以减少搜索量 int mov
2016-08-27 15:17:24 725
原创 usaco第三题黑色星期五
#include#include#include#includeusing namespace std;#define ms(k) memset(k,0,sizeof(k))int d[8];int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};//简单的枚举就ok了,数据很水 int main(){ int i,j,k,m,n,
2016-08-27 14:44:29 715
原创 usaco第二题稍微有点难。。。结构体就ac
#include#include#include#includeusing namespace std;struct student{//定义一个结构体,存人名和钱数; string s; int my;}a[12];int main(){ int i,j,k,m,n; scanf("%d",&n); for(i=1;i<=n;i++)
2016-08-27 14:12:38 573
原创 usaco 第一题(水题,不多说了)
/* ID:brodrn1 LANG:c PROG:ride*/#include#include#include#includeusing namespace std;char s[10],a[10];int main(){ int i,j,k,m,n; gets(s); gets(a); int len1=strlen(s); int len2=str
2016-08-27 13:37:07 928
原创 floyd 模板
#include#include#include#includeusing namespace std;#define inf 9999999999const int maxn=110;int a[maxn][maxn]; int main(){ int i,j,k,m,n; scanf("%d%d",&n,&m); for(i=1;i<=n;i++){ for(j=1;
2016-08-26 21:36:48 643
原创 qsort
#include#include#include#includeusing namespace std;const int maxn=10010;int a[maxn];void qsort(int b,int e){//用两个指针来模拟快排 int u=b,v=e; int p=a[b];//将其作为模板 if(u>v)return ; while(
2016-08-26 21:15:37 1001
原创 堆排序(用了好多的位运算)
#include#include#include#include#includeusing namespace std;const int maxn=10000;int a[maxn];int main(){ int i,j,k,m=0,n,t; scanf("%d",&n); int top=1;//模拟堆顶 for(i=
2016-08-26 21:01:22 609
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人