Fancy Mouse
- -|||
摘要: 设f(n,m)为所求答案,则f(n,m)求得是:2^n,当m>n;2f(n-1,m) - f(n-m-1,m),当mn的时候是2^n很好理解,所有2^n种放法均满足要求然后就是musing namespace std;int main(){ long long matrix[51][4]; int n,m,i,j; for(j=0;j>n>>m) cout<<mat... 阅读全文
posted @ 2005-09-24 19:16 Fancy Mouse 阅读(424) 评论(2) 推荐(0)
摘要: 有趣的题。虽然这种代码网上泛滥,但是我还是自己做了一个。这个代码绝对原创哟~~注意好特殊符号的输出。我为了不用"这个符号输出,加了一堆的coutvoid N(char *a,char *b,char *c){static int t;if(++t",*s2="void N(char *a,char *b,char *c){static int t;if(++tint main(){char *s=... 阅读全文
posted @ 2005-09-24 13:24 Fancy Mouse 阅读(369) 评论(1) 推荐(0)
摘要: 有谁这道题用搜索的么?注意分段分析。譬如对于123456789,我们这样来计算:分析1~99999999;分析100000000~119999999;分析120000000~123999999;……这样做有什么好处呢?注意0~10^n-1的话,每一个数字出现的次数都是相同的(首位0另外考虑),而且可以通过简单的计算就能得到。我们把一个数分段,分成几个0~10^n-1的段,然后再计算。注意10000... 阅读全文
posted @ 2005-09-24 13:16 Fancy Mouse 阅读(345) 评论(1) 推荐(0)
摘要: 对于连续的4个数,n,n+1,n+2,n+3,有+(n) - (n+1) - (n+2) + (n+3) = 0所以4个4个去掉剩下来就{{1},{1,2},{1,2,3},空}这几种情况了。很明显-1-2+3=0,-1+2=1。所以n模4余0、3的时候答案为0,否则答案为1。……程序都有点不想贴出来了,这都写不出来的话就。。。 #includeusing namespace std;int ma... 阅读全文
posted @ 2005-09-24 13:08 Fancy Mouse 阅读(234) 评论(1) 推荐(0)
摘要: 和TJU1044一样,看懂题目就可以做了。自己画一个棋盘,找一下规律,剩下的就是一堆的条件判断了。 #includeusing namespace std;int Boundary(int num);int Chess(int line,int row);int main(){ char grid[2]; int data,line,row; cin>>data; whil... 阅读全文
posted @ 2005-09-24 13:04 Fancy Mouse 阅读(306) 评论(1) 推荐(0)
摘要: I/O量比较大,用C++的cout的话很浪费时间的……不过既然ac了,也就管不了那么多了哈~~这题……看懂题目即可。 #includeusing namespace std;long IsSevens(long Number){ if(Number%7 == 0) return 1; if(Number%10 == 7) return 1; return 0;}int main(... 阅读全文
posted @ 2005-09-24 13:02 Fancy Mouse 阅读(260) 评论(1) 推荐(0)
摘要: 这里参考了某人很弓虽的解法。对于数据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)