上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 题目大意:很多的蚂蚁都在长度为L(cm)的膀子上爬行,它们的速度都是1cm/s,到了棒子终端的时候,蚂蚁就会掉下去。如果在爬行途中遇到其他蚂蚁,两只蚂蚁的方向都会逆转。已知蚂蚁在棒子的最初位置坐标,但是我们不知道他们会往哪一个方向爬。请求出所有蚂蚁掉下去的最短时间和最长时间。思路:当蚂蚁碰撞时,两只蚂蚁相反方向走,换个思路就是把他们的身份互换,相当于直接穿过,所以不用考虑蚂蚁的碰撞问题。#include #include#includeusing namespace std; int main(int argc, char** argv) { int t,n,len,x,y,ans1,ans2 阅读全文
posted @ 2014-02-27 16:44 Teemo的技术blog 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意:鞋匠现在有n个工作要做,每个工作要x天,没延迟一天需要付款y,鞋匠每天只能做一个工作,问使得鞋匠最少赔款的工作顺序。思路:工作和工作之间排序,如果a.value*b.day>b.value*a.day a工作应该排在前面#include #include#includeusing namespace std;#define N 1010struct node{ int day; int value; int id;}joy[N];bool cmp(node a,node b){ return a.value*b.day>b.value*a.day;}int main(int 阅读全文
posted @ 2014-02-27 15:49 Teemo的技术blog 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n*m的图,@代表有油田的格子,*代表没油田的格子,如果油田旁边有油田就合并一起成为一个油田区,合并的方向为8个,现在问你油田合并过后,有多少个油田区解法:用dfs or bfsdfs:#includeusing namespace std;char map[102][102];int dir[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};void dfs(int x,int y){ int i,x1,y1; if(map[x][y]=='@') { map[x][y]='*... 阅读全文
posted @ 2014-02-27 14:47 Teemo的技术blog 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题意:略思路:套hdu1166模版改改就行了,要注意的是,网上有的代码是错的,还贴出来...#include #include#includeusing namespace std;#define MAXN 200100int n,ans;struct{ int l,r,value,max;}tree[MAXN>1; Build(l,mid,id>1; if(l>1; if(rmid) return query(l,r,id<<1|1); else{ query(l,mid,id<<1); query(mid+1,r,id<<1|1); } 阅读全文
posted @ 2014-02-22 23:50 Teemo的技术blog 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意:略思路:这题是单点更新,如果是减少的话,直接把数据变成负加上去就行了。#include #include#includeusing namespace std;#define MAXN 50010int n,ans;struct{ int l,r,value;}tree[MAXN>1; Build(l,mid,id>1; if(l>1; if(rmid) query(l,r,id<<1|1); else{ query(l,mid,id<<1); query(mid+1,r,id<<1|1); }}int... 阅读全文
posted @ 2014-02-21 17:28 Teemo的技术blog 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 题意:给你个n,表示区间【1,n】,价值初始为1,给你m段区间和价值,更新区间,区间价值以最后更新为准,问更新后区间价值总和为多少思路:两种方法,可以先存下来,倒过来更新,一更新节点马上跳出,比较快 线段树#include using namespace std;int data[100005][3];int main(){ int t,q,n,i,j,sum,k,v; scanf("%d",&t); for(i=1;i=1;j--) if(data[j][0]#includeusing namespace std;#define N 3000... 阅读全文
posted @ 2014-01-25 17:44 Teemo的技术blog 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n个数,这些数可以互相加或者减,输出在范围【1,sum】里不能通过运算得出的数思路:套母函数模版#include #includeusing namespace std;#define N 110int a[N],c1[10010],c2[10010],v[10010]; int main(int argc, char** argv) { int n,sum,i,j,k,ans; while(scanf("%d",&n)!=EOF){ sum=0; ans=0; for(i=0;i=j) c2[k-j]+=c1[j]; else c2[j-k]+=c... 阅读全文
posted @ 2014-01-24 21:29 Teemo的技术blog 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 题意:求区间【a,b】的第k大因为多次询问要用到划分树#include #include#include#includeusing namespace std;#define MAXN 100010int tree[30][MAXN],sorted[MAXN];int toleft[30][MAXN];void build(int l,int r,int dep){ if(l==r)return; int i; int mid=(l+r)>>1; int same=mid-l+1; for(i=l;i0){ tree[dep+1][lpos++]=tree[dep][i]; sam 阅读全文
posted @ 2014-01-23 20:39 Teemo的技术blog 阅读(88) 评论(0) 推荐(0) 编辑
摘要: //第一期计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点快。一。点,线,面,形基本关系,点积叉积的理解POJ 2318 TOYS(推荐)http://acm.pku.edu.cn/JudgeOnline/problem?id=2318POJ 2398 Toy Sto 阅读全文
posted @ 2014-01-23 11:51 Teemo的技术blog 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 用java的大数解决import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); BigInteger f[]=new BigInteger[1001]; f[0]=BigInteger.valueOf(1); f[1]=BigInteger.valueOf(1); for(int i=2;i0){ int n=i... 阅读全文
posted @ 2014-01-22 19:01 Teemo的技术blog 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页