摘要: 题目大意:很多的蚂蚁都在长度为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) 编辑