摘要: 题意:给你一个立方体,其中有16个顶点,每个顶点有4个顶点相邻。每个顶点有一个开关,其中给你8开(1)8关(0),让你交换一条边上两点开光状态,使得编号1-8的开光全关。求出达到要求的最小步数。如果大于3则输出more。。解题思路:首先用map存储图的状况,对前八个编号为开的每个顶点进行dfs,如果相邻点状态为1,则没必要继续dfs,如果为0,则dfs,一直到dfs到顶点的序号大于等于9,更新本点的最小步数的顶点。最后 求和即可解题代码: 1 #include 2 #include 3 #include 4 5 6 int map[10][5]; 7 int a[20]... 阅读全文
posted @ 2013-11-15 23:39 dark_dream 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 12 using namespace std;13 14 15 #define MAX 1000000016 int a[MAX];17 18 int cmp(const void *a ,const void *b)19 {20 return (*(int*)a) - (*(int*)b);21 }22 int b[MAX];23 void ra... 阅读全文
posted @ 2013-11-15 15:49 dark_dream 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 听AC大神说随机大数不能用两个随机数乘,所以就用每一位来rand 1 #include 2 #include 3 #include 4 #define MAX 10000000 5 int Rand(int k,int max) 6 { 7 int a = 0; 8 for(int i =1;i <= k;i ++) 9 {10 a *= 10;11 a += rand()%10;12 }13 if(a <= max)14 return a;15 else return Rand(k,max);1... 阅读全文
posted @ 2013-11-15 14:47 dark_dream 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题意:有两只青蛙同时同步绕圈跳,其中一只青蛙起点为x,步长为m,另一只起点为y,步长为n,圈的周长为L,问你他们是否能够相遇,要跳几步。解题思路:扩展欧几里得http://zh.wikipedia.org/zh-cn/%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95解题代码: 1 #include 2 #include 3 #include 4 __int64 extgcd(__int64 a, __int64 b, __int64 &x, __int64 &y) 5 { 6 __i 阅读全文
posted @ 2013-11-15 11:21 dark_dream 阅读(242) 评论(0) 推荐(0) 编辑