上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 50 下一页
摘要: 题意:求左下角到右上角的最短路,按照方向输出 解题思路:优先方向的广搜,格式错误判WA解题代码: 1 // File Name: 2594.c 2 // Author: darkdream 3 // Created Time: 2013年09月07日 星期六 22时18分29秒 4 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define LL long long 11 int map[1000][1000]; 12 int visit[1000][1000]; 13 char str[1000][... 阅读全文
posted @ 2013-09-08 10:58 dark_dream 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 题意:把n个数(+1 或-1)放在一个圈上,问你有几个j 满足求和一圈前缀和 > 1解题思路:个数就是n个数的和,这个优美的结论大家自己证明。。。解题代码: 1 // File Name: f.c 2 // Author: darkdream 3 // Created Time: 2013年09月07日 星期六 14时28分49秒 4 5 #include 6 #include 7 #include 8 #include 9 #include10 #define LL long long11 #define maxn 20000512 //freopen("/home/plac 阅读全文
posted @ 2013-09-07 21:59 dark_dream 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using std::swap; 3 4 int partition(int* array, int left, int right) 5 { 6 int index = left; 7 int pivot = array[index]; 8 swap(array[index], array[right]); 9 for (int i=left; i pivot) // 降序12 swap(array[index++], arra... 阅读全文
posted @ 2013-09-07 11:45 dark_dream 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个n*m的方格,问你用3*1的格子覆盖掉这个方格有多少种方法。。解题思路:主要是状态压缩+dp,状态压缩和dp很神,http://www.cppblog.com/Ayue/archive/2011/12/04/161446.aspx解题代码: 1 // Author: darkdream 2 // Created Time: 2013年09月06日 星期五 20时03分39秒 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define LL long long10 //freopen("/home/ 阅读全文
posted @ 2013-09-06 20:27 dark_dream 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 基数排序是一种非比较排序,它的时间复杂度为O(K*N),其中k是最大那个数的长度,基数排序其实是一种桶式排序的优化,它适用于N中数据比较大情况,一位一位的去排序最后得到我们要得到的序列解题代码: 1 //基数排序 2 #include 3 #define MAX 1000000 4 void print(int *a, int n) 5 { 6 int i; 7 for (i = 0; i m)17 m = a[i];18 }19 20 while (m / exp > 0)21 {22 int bucket[10] ={ 0 };23 f... 阅读全文
posted @ 2013-09-06 16:17 dark_dream 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意:给定你三个圆心,三个圆相交,求每个圆心大小解题代码:由于任意两个圆的半径和为其圆心的连线的长度,可以列出三个二元一次方程,求解可得 解题代码: 1 #include 2 #include 3 #include 4 #include 5 double distance(double x1,double y1,double x2,double y2) 6 { 7 return sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); 8 } 9 int main()10 {11 ... 阅读全文
posted @ 2013-09-05 20:00 dark_dream 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题意:构造哈夫曼数,求出其中产生节点值的和解题思路:裸优先队列(最小堆),渣渣只会堆解题代码: 1 // File Name: c.cpp 2 // Author: darkdream 3 // Created Time: 2013年09月04日 星期三 14时50分35秒 4 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include... 阅读全文
posted @ 2013-09-05 19:37 dark_dream 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题意:海盗有n个人,他们预计得到Y个金币,然后第i个人分到xi个金币,然而最后他们得到m个金币,要怎么分使得他们的到的金币与预期的差值(绝对值)的和最小解题代码:每个人先分到金币预期的向下取整,得到的和肯定小于n,,,然后再根据每个+1以后对和的影响排序,然后把多余的金币z分给前z个人解题代码:(这里贴上watashi的解题代码) 1 #include 2 int main() 3 { 4 int re,i,j,k,n,m,y,sum; 5 short int p[1000]; 6 struct robber{ 7 int i,k,x; 8 ... 阅读全文
posted @ 2013-09-05 19:33 dark_dream 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:给定n个人,围成一圈,求一个最大的K(1 6 #include 7 #include 8 #include 9 #include 10 #include 11 #define maxn 100005 12 struct node2{ 13 int x, y,num; 14 }first[maxn],stack[maxn]; 15 int pre[maxn]; 16 int cmp1(const void * a,const void *b) 17 { 18 if((*(node2*)a).x == (*(node2*)b).x) 19 { 20 ... 阅读全文
posted @ 2013-09-04 12:14 dark_dream 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个俱乐部,俱乐部里面有n个人,每个人有一个强壮值和美丽值,如果某个人在某方面不能完胜或完败某个人的话,那么这两个人就不会产生矛盾!!现在俱乐部要举行一次聚会。。怎样召集人使得最多的人数两两不矛盾。。解题思路:比较巧妙的一个最长上升子序列的算法,其中,解法是按照从强壮值从升序,美丽值在强壮值相等的时候降序,这样直接进行最长上升子序列再记录路径就能够得到答案(这里面不会产生使得序列长度变短或变长,,读者想一下)解题代码: 1 // File Name: g.c 2 // Author: darkdream 3 // Created Time: 2013年09月03日 星期二 16时... 阅读全文
posted @ 2013-09-04 12:00 dark_dream 阅读(590) 评论(0) 推荐(0) 编辑
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 50 下一页