摘要: 题目链接题目大意:给定3个已排序的数列,在每个数列中选一个数,记为x,y,x,使(x-y)2+(y-z)2+(z-x)2最小。具体解法是贪心。这题我无语了,就因为打错一个字母,WA了4次。还好在队友帮助下及时发现,否则还不知道要纠结多久……下面的代码提交时需改数据类型,防止溢出。View Code 1 #include <stdio.h> 2 #define MIN(a,b) ((a)<(b)?(a):(b)) 3 #define N 1000005 4 int a[N],b[N],c[N]; 5 int dist(int x,int y,int z) 6 { 7 retur 阅读全文
posted @ 2012-04-18 09:53 BeatLJ 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目链接单调队列练习题。题目大意:n个牛排成一列向右看,牛i能看到牛j的头顶,当且仅当牛j在牛i的右边并且牛i与牛j之间的所有牛均比牛i矮。设牛i能看到的牛数为Ci,求∑CiView Code 1 #include <stdio.h> 2 #define N 8000001 3 #define INF 0x7fffffff 4 int a[N]; 5 int q[N],front,rear; 6 int main() 7 { 8 int i,n; 9 long long ans;10 while(~scanf("%d",&n))11 {12 f... 阅读全文
posted @ 2012-04-18 09:47 BeatLJ 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 题目链接求逆序数的题。因为只有4种元素,所以可以直接统计排在某个元素前面且比它小的元素个数(用4个变量记录已出现的A,C,G,T的个数),复杂度为O(N)。若元素种类很多,可以使用树状数组进行类似基数排序的统计。View Code 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 55 4 #define M 105 5 struct node 6 { 7 char s[N]; 8 int d; 9 }node[M];10 int a,c,g,t,len;11 int cal(char s[])12 {13 . 阅读全文
posted @ 2012-04-18 08:56 BeatLJ 阅读(332) 评论(0) 推荐(0) 编辑