摘要:
这里参考了某人很弓虽的解法。对于数据a1,a2,a3,...,an。考虑sigma(i=1~j,ai)(j=1~n)这n个数当a(k-1),ak,a(k+1)变换一次成为a`(k-1)=ak+a(k+1),a`k=-ak,a`(k+1)=ak+a(k+1)以后,sigma(i=1~k-1,a`i) = sigma(i=1~k-2,ai) + a`k = sigma(i=1~k,a`i)sigma(... 阅读全文
posted @ 2005-09-24 12:58
Fancy Mouse
阅读(251)
评论(1)
推荐(0)
摘要:
注意没有加减号的情况的处理,别wa了这里用到一个小技巧,将123456789之间的8个空位设为一个一个digit,然后这8个digit放在一起形成一个3进制的数。这样遍历的时候就设一个int然后从0遍历到3^8就可以了,不用建一个数组然后递归了。 #includeusing namespace std;#define OpNo 0 //No operator#define OpAdd 1 //+#... 阅读全文
posted @ 2005-09-24 12:22
Fancy Mouse
阅读(309)
评论(1)
推荐(0)
摘要:
直接模拟做。棋盘共有(10*10*4)^2=160000种状态,循环160000次以后还没相遇就认为无解了。代码方面么……自己喜欢设计点class,估计看上去好理解一些哈~~ #includeusing namespace std;enum Direction{North,East,South,West};typedef struct{int x,y;Direction d;}Point;clas... 阅读全文
posted @ 2005-09-24 12:19
Fancy Mouse
阅读(290)
评论(1)
推荐(0)
摘要:
变量就未赋值和已赋值两种状态。所谓赋值就是把一个变量的状态复制到另一个变量。仅此而已。因此用简单的模拟就可以做出。 #includeusing namespace std;void Restore(int map[]);int main(){ char b[3]; int data,lines; int map[26]; cin>>data; while(data>0... 阅读全文
posted @ 2005-09-24 01:11
Fancy Mouse
阅读(278)
评论(1)
推荐(0)
摘要:
只要考虑第一张牌什么时候返回原来的位置就可以了。证明:构造f(x) = 2x % (2n+1), x = 1~2n则这个f(x)就是进行一次变换的函数关系。进行i次变换,则变成(2^x * i) % (2n+1)。假设(2^j) % (2n+1) = 1那对于任何k,(2^j * k) % (2n+1) = k即当第一张牌回归原位的时候,所有的牌都回归原位。证毕 #includeusing nam... 阅读全文
posted @ 2005-09-24 01:05
Fancy Mouse
阅读(313)
评论(1)
推荐(0)
浙公网安备 33010602011771号