08 2012 档案
摘要:在网上找到一个很好的算法,仔细观察可以发现,目标序列的开头几个乌龟都是经过移动后形成的,只要从原始序列中对比查找目标序列是否相同就能很快得到答案 ,代码够短了吧,呵呵 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=103&page=show_problem&problem=1093 首先找到需要移动的字符串,方法如下:以初始序列为准,设初始序列下标为i, 目的序列下标为j, 从n-1开始,如果两下标对应的字符串相等,下标同时减一,否则仅初始序列
阅读全文
摘要:找规律1: 12 1 13 1 1 14: 1 2 1 5 1 2 1 16 1 2 2 17 1 2 2 1 18 1 2 2 2 19: 1 2 3 2 110 1 2 3 2 1 111 1 2 3 2 2 112 1 2 3 3 2 113 1 2 3 3 2 1 114 1 2 3 3 2 2 115 1 2 3 3 3 2 116: 1 2 3 4 3 2 1n*n:2*n-1N*N-(N-1)*(N-1)-12*n-2因为完全平方数的最小step是确定的所以,以完全平方数为界限。n*n: 1......n......1 minstep:2*n-1..n*(n+1) 1......
阅读全文
摘要:必然存在整数x(1=<x <= n)满足:当 s1 = 1+2+3+...+x+..+n>= k时,有s2 = 1+2+3+...-x+..+n== k,即多出的x肯定在1~n之间。s1-s2 = s1 - k = 2x所以,我们想求最小的n,也就是求最小的满足条件的s1,而它与k的差必为偶数,剩下的暴力找就可以了。#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<queue>#include<stack>
阅读全文
摘要:Q253: Cube painting我們想要為方塊塗上顏色,我們有三種顏色:藍色、紅色、綠色。方塊的每一面塗上其中一種顏色。現在,我們把方塊的6個面以1~6來編號,如下圖Figure 1:因為一個方塊有6面,所以我們有36=729種不同的方式來塗方塊。然而當我們忽略面上的編號時,不同塗方塊的方式就會少很多,那是因為方塊可以旋轉的緣故。請看以下的例子:我們以6個字元來表達一個方塊6個面上塗的顏色(字元為b,r,g其中之一,分別代表blue, red, green)。第i個字元代表第i面上的顏色,例如下圖Figure 2就是rbgggr的圖,Figure 3就是rggbgr的圖。請注意:Figu
阅读全文
摘要:#include <iostream> #include <cmath> using namespace std; int main(int ac, char *av[]) { int step; while (cin >> step, step) { // 确定步数数字所在的列或者行。 //ceil 返回大于或者等于指定表达式的最小整数 int column = (int)ceil(sqrt(step)); // 确定对角线上的数字:column * (column -...
阅读全文

浙公网安备 33010602011771号