上一页 1 ··· 29 30 31 32 33
摘要: 这道题,做了好几次,彻头彻尾的经典线段树。#include<stdio.h>#define HH 1struct st{ __int64 l; __int64 r; __int64 color; __int64 num; __int64 sum;}f[100001*4];__int64 date[100002];void build(__int64 l,__int64 r,__int64 n){ __int64 mid=(l+r)/2; f[n].l=l; f[n].r=r; f[n].color=0; f[n].num=0; ... 阅读全文
posted @ 2013-04-23 19:19 芷水 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 这道题居然以dota为背景,很受寝室同学的关注。自己写的延迟,后来发现错误了,看了ppt的思想,该写了好久。1A#includestruct st{ int l; int r; int color; int num;}f[100002*4];int sum1;#define ... 阅读全文
posted @ 2013-04-20 10:27 芷水 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 学习线段树,把以前的树状数组也复习一下。Minimum Inversion Number求最小的逆序数#include<stdio.h>struct st{ int l; int r; int sum;}f[4*5002];int date[5002];void build(int l,int r,int n){ int mid=(l+r)/2; f[n].l=l; f[n].r=r; if(l==r) f[n].sum=date[l]; else { build(l,mid,n*2); build... 阅读全文
posted @ 2013-04-19 19:47 芷水 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 选课时间(题目已修改,注意读题)Problem Description又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)Input输入数据的第一行是一个数据T,表示有T组数据。每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。接着有k行,每行有两个整数a(1 <= a <= 8),b(1 <= b <= 10),表示学分为a的课有b门Output对于每组输入数据,输出一个整数,表示学n个学分的组合数。22 21 22 阅读全文
posted @ 2013-04-14 23:01 芷水 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 继续努力,感觉自己很弱,很弱的那种。。。。。。 阅读全文
posted @ 2013-04-10 20:06 芷水 阅读(100) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<iostream>#include<cstdlib>using namespace std;struct st{ int l; int r;} a[5003];int visit[5002];int cmp(const void *a,const void *b){ struct st *p=(st*)a; struct st *q=(st*)b; if(p->l!=q->l) return p->l-q->l; else return p->r-q->r;}int ma 阅读全文
posted @ 2013-04-09 16:24 芷水 阅读(187) 评论(0) 推荐(0) 编辑
摘要: Big Event in HDU hdu1171题目意思: 给很多组数组,平方他们,使他们的相差尽可能小。#include<stdio.h>int f[250001],a[51],b[51];int main(){int i,j,k,n,t,s,temp;__int64 m;while(scanf("%d",&t)>0){if(t<0)break;for(i=1,m=0;i<=t;i++){scanf("%d%d",&a[i],&b[i]);m=m+a[i]*b[i];}k=m/2;for(i=1;i 阅读全文
posted @ 2013-04-07 12:27 芷水 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 很久没有学习算法了,很多东西似乎都快忘记了。新的学期开始了,2013,努力奋斗,戒骄戒躁。 阅读全文
posted @ 2013-02-25 17:04 芷水 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 离散化 9 1 0 54下标 1 2 3 4 5排序后(从小到大)//如果是从大到小呢?呵呵,那么最后的结果就是最大的变成最下的了。最小的变成最大的了。 0 14 5 9下标 3 2 5 4 1把下标对应在另一个数组b【下标】= i从1-5则 下标b[3]=1;b[2]=2;b[5]=3;b[4]=4;b[1]=5;最后变成 5 2 1 4 3离散化成功。把 9 1 0 5 4变成 5 2 1 4 3.经历的过程是:bool cmp(st q, st z){return q.date<z.date;}//运用到快排for(i=1;i<=n;i++){scanf("%d&q 阅读全文
posted @ 2013-02-25 17:01 芷水 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33