Fancy Mouse
- -|||
摘要: 这里参考了某人很弓虽的解法。对于数据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)
摘要: 本题就是证明ka mod 65是一个常数证明如下:(当然列举x=0~64的情况可以的,只要你高兴算)5x13 + 13x5 + kax ≡ 0 (mod 65)首先如果x和5、13不都互质,那原恒等式不对任意x成立。当x与5、13都互质的时候,由于5|5x13,13|13x5,因此我们有13x5 + kax ≡ 0 (mod 5)5x13 + kax ≡ 0 (mod 13)由于5、13都是质数,... 阅读全文
posted @ 2005-09-10 21:58 Fancy Mouse 阅读(496) 评论(1) 推荐(0)
摘要: 据Maigo大牛说,真正能ac的只是a~i这些数字以升序排列的第一个解。我们还是直接模拟做。入手点是角落里的三个数。 #includeusing namespace std;void Solve(int p);int Occupied(int k,int num[]);void Print(int num[]);int Min,Max;int main(){ int data,p; c... 阅读全文
posted @ 2005-09-10 21:37 Fancy Mouse 阅读(350) 评论(1) 推荐(0)
摘要: 还是排列组合。只要知道这个:对于这个棋盘的小矩形,假设是a*b的矩形,那长为a的边在长为N的边中共有N-a+1种选择方式,而a可以取1~N的所有数值,因此对于长的取法是sigma(i=1~N,i) = N*(N+1)/2。同样宽也能取M*(M+1)/2种,于是子矩形可以有M*(M+1)*N*(N+1)/4种。而子正方形的取法就是N*M+(N-1)*(M-1)+...+(N-M+1)*1(如果N>M... 阅读全文
posted @ 2005-09-10 21:34 Fancy Mouse 阅读(306) 评论(1) 推荐(0)
摘要: 本来以为数据大小会超过max_longint,写了个大数类wa。结果试着用long写一个居然ac了。没有什么技巧,就是基本的进制转换 #includeusing namespace std;const int MAX = 100;int main(){ int data,oldn,newn; unsigned long n; char buffer[MAX],*p; cin... 阅读全文
posted @ 2005-09-10 21:19 Fancy Mouse 阅读(307) 评论(1) 推荐(0)
摘要: 字符串处理。注意一下什么时候输出error什么时候对原字符串不进行修改 #includeusing namespace std;const int MAX = 40;void Delete(char s[],char a);void Insert(char s[],char a,char b);void Replace(char s[],char a,char b);int main(){ ... 阅读全文
posted @ 2005-08-27 13:25 Fancy Mouse 阅读(369) 评论(1) 推荐(0)