青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

A hard Aoshu Problem, ACM/ICPC 2010/2011 亞洲,福州區域賽 J, UVA 5107

5107 - A hard Aoshu Problem
Asia - Fuzhou - 2010/2011

 

Math Olympiad is called ``Aoshu" in China. Aoshu is very popular in elementary schools. Nowadays, Aoshu is getting more and more difficult. Here is a classic Aoshu problem:

 

 

ABBDE$\displaystyle \_$$\displaystyle \_$$\displaystyle \_abccc$ = BDBDE

In the equation above, a letter stands for a digit(0 - 9), and different letters stands for different digits. You can fill the blank with `+', `-`, ` x' or `÷'.

How to make the equation right? Here is a solution:

 

 

12245 + 12000 = 24245

In that solution, A = 1, B = 2, C = 0, D = 4, E = 5, and `+' is filled in the blank.

When I was a kid, finding a solution is OK. But now, my daughter's teacher tells her to find all solutions. That's terrible. I doubt whether her teacher really knows how many solutions are there. So please write a program for me to solve this kind of problems.

 

Input 

The first line of the input is an integer T (T$ \le$20) indicating the number of test cases.

Each test case is a line which is in the format below:

 


s1 s2 s3

 


s1, s2 and s3 are all strings which are made up of capital letters. Those capital letters only include ` A',' B', ' C',' D' and ` E', so forget about ` F' to ` Z'. The length of s1, s2 or s3 is no more than 8.

When you put a `=' between s2 and s3, and put a operator (`+','-`, ` x' or `÷'.) between s1 and s2, and replace every capital letter with a digit, you get a equation.

You should figure out the number of solutions making the equation right.

Please note that same letters must be replaced by same digits, and different letters must be replaced by different digits.

If a number in the equation is more than one digit, it must not have leading zero.

 

Output 

For each test case, print an integer in a line. It represents the number of solutions.

 

Sample Input 

 

2 
A A A
BCD BCD B

 

Sample Output 

 

5
72

Fuzhou 2010-2011


暴力搜索之。。。

我的代碼:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 typedef long long Lint;
 5 
 6 #define  L  10
 7 
 8 char s1[ L ], s2[ L ], s3[ L ];
 9 
10 #define  DIGIT  6
11 
12 int digit[ DIGIT ], used[ DIGIT ];
13 int a[ L ], b[ L ], c[ L + L ];
14 
15 void parse( char s[], int a[], int size ) {
16         int i, len = strlen( s );
17         memset( a, 0, size );
18         for ( i = 0; i < len; ++i ) {
19                 used[ a[ len - i - 1 ] = s[ i ] - 'A' + 1 ] = 1;
20         }
21 }
22 
23 void init() {
24         memset( used,  0sizeof(used)  );
25         parse( s1, a, sizeof(a) );
26         parse( s2, b, sizeof(b) );
27         parse( s3, c, sizeof(c) );
28 }
29 
30 int parseInt( int a[], int n, Lint *num ) {
31         int i = n-1;
32         while ( (i>=0&& (a[i]==0) ) --i;
33         if ( (i<0|| ((i>0)&&(digit[a[i]]==0)) ) return 0;
34         *num = 0;
35         for ( ; i >= 0--i ) {
36                 if ( digit[ a[ i ] ] > 9 ) return 0;
37                 *num = (*num) * 10 + digit[ a[ i ] ];
38         }
39         return 1;
40 }
41 
42 int equal() {
43         Lint x, y, z;
44         int i, ans = 0;
45         for ( i = 1; i < DIGIT; ++i ) {
46                 if ( (digit[i]<10&& (used[i]==0) ) {
47                         return 0;
48                 }
49         }
50         if ( !parseInt( a, sizeof(a)/sizeof(a[0]), &x ) ) return 0;
51         if ( !parseInt( b, sizeof(b)/sizeof(b[0]), &y ) ) return 0;
52         if ( !parseInt( c, sizeof(c)/sizeof(c[0]), &z ) ) return 0;
53         if ( x + y == z ) ++ans;
54         if ( x - y == z ) ++ans;
55         if ( x * y == z ) ++ans;
56         if ( (y!=0&& (x%y==0&& (x/y==z) ) ++ans;
57         return ans;
58 }
59 
60 int solve() {
61         int ans = 0, have[ 22 ] = { 0 };
62 #define  F(i) for ( digit[ i ] = 0; digit[ i ] < 11; ++digit[ i ] ) { \
63                 if ( have[ digit[ i ] ] ) continue; \
64                 if ( digit[ i ] < 10 ) have[ digit[ i ] ] = 1;
65 #define  E(i)  have[ digit[ i ] ] = 0; \
66         }
67         F(1) F(2) F(3) F(4) F(5) {
68                 ans += equal();
69         } E(5) E(4) E(3) E(2) E(1)
70         return ans;
71 }
72 
73 int main() {
74         int td;
75         scanf( "%d"&td );
76         while ( td-- > 0 ) {
77                 scanf( "%s%s%s", s1, s2, s3 );
78                 init();
79                 printf( "%d\n", solve() );
80         }
81         return 0;
82 }
83 


posted on 2011-03-24 22:14 coreBugZJ 閱讀(2105) 評論(3)  編輯 收藏 引用 所屬分類: ACM

Feedback

# re: A hard Aoshu Problem, ACM/ICPC 2010/2011 亞洲,福州區域賽, UVA 5107 2011-03-25 09:53 電腦知識與技術

全都是英文。看不懂啊  回復  更多評論   

# re: A hard Aoshu Problem, ACM/ICPC 2010/2011 亞洲,福州區域賽, UVA 5107[未登錄] 2011-03-25 15:45 Bill

純建議,不要一次發一堆文章到主頁上。可以慢慢發。  回復  更多評論   

# re: A hard Aoshu Problem, ACM/ICPC 2010/2011 亞洲,福州區域賽, UVA 5107 2011-03-25 16:21 coreBugZJ

@Bill
我是剛來的菜鳥,不懂事,謝謝提醒。。。  回復  更多評論   


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜欧美精品久久久久久久| 国产精品jvid在线观看蜜臀| 新狼窝色av性久久久久久| 亚洲欧美一区二区激情| 欧美激情在线播放| 激情欧美一区二区三区在线观看 | 欧美久久影院| 91久久国产综合久久| 久久精品官网| 欧美在线观看天堂一区二区三区| 欧美三级电影一区| 夜夜嗨av一区二区三区 | 久久gogo国模裸体人体| 亚洲欧美另类国产| 国内成人在线| 欧美成人伊人久久综合网| 老司机午夜精品视频| 亚洲高清免费在线| 欧美日韩一区国产| 性感少妇一区| 久久精品国亚洲| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产美女精品久久久久∴| 久久久国产视频91| 亚洲一区二三| 六月天综合网| 久久精品99无色码中文字幕 | 久久野战av| 日韩视频在线播放| 欧美在线看片| 一区二区黄色| 久久精品国产精品亚洲精品| 99热免费精品| 欧美一区二区精品在线| 9国产精品视频| 免播放器亚洲一区| 久久本道综合色狠狠五月| 欧美—级在线免费片| 久久久久久久尹人综合网亚洲 | 亚洲国产精品成人一区二区 | 亚洲国产视频一区二区| 国产区二精品视| 一本色道**综合亚洲精品蜜桃冫| 亚洲高清色综合| 久久久久久国产精品mv| 久久久久久综合| 在线电影国产精品| 久久久亚洲国产美女国产盗摄| 久久久久一区二区| 久久久国产91| 久久综合网hezyo| 国语自产在线不卡| 欧美jizzhd精品欧美巨大免费| 狼人社综合社区| 亚洲电影一级黄| 欧美日韩日本网| 宅男噜噜噜66一区二区| 久久精品国产亚洲aⅴ| 在线成人h网| 欧美日韩a区| 午夜精品久久久久久久男人的天堂 | 亚洲女性裸体视频| 国产欧美在线| 欧美日韩亚洲综合| 久久午夜精品| 日韩一区二区免费看| 久久人人爽爽爽人久久久| 亚洲人成网站在线播| 国产精品女同互慰在线看| 久久久中精品2020中文| 99精品国产福利在线观看免费 | 香蕉成人久久| 欧美日韩日日骚| 亚洲午夜视频在线| 亚洲欧美日韩综合一区| 国产精品亚洲网站| 欧美日韩免费观看一区三区| 久久蜜桃精品| 久久久精品免费视频| 亚洲一区二区3| 一区二区电影免费在线观看| 久久综合久久综合这里只有精品 | 久久精品中文| 性欧美超级视频| 久久国产精品99国产精| 久久久久成人网| 久久久久久久97| 欧美国产成人在线| 欧美激情视频在线免费观看 欧美视频免费一 | 黑人巨大精品欧美一区二区| 国产精品户外野外| 国产精品入口福利| 国产在线观看一区| 中日韩午夜理伦电影免费| 在线一区二区视频| 久久国产精品久久精品国产 | 欧美在线一级视频| 久久婷婷久久| 亚洲国产综合在线| 午夜精品视频在线| 麻豆av一区二区三区| 欧美精品一区二区在线观看| 欧美网站在线观看| 亚洲国产成人精品久久久国产成人一区 | 欧美一区中文字幕| 猫咪成人在线观看| 国产精品人人做人人爽人人添| 国产在线精品成人一区二区三区| 91久久久久| 米奇777在线欧美播放| 一本一道久久综合狠狠老精东影业| 中国成人亚色综合网站| 久久精品国产999大香线蕉| 免费中文字幕日韩欧美| 亚洲综合色噜噜狠狠| 欧美激情一区二区在线| 亚洲国产一成人久久精品| 欧美一区二区三区四区在线观看地址| 欧美激情小视频| 激情六月婷婷久久| 久久精品免费电影| 欧美在线视频一区| 国产一区二区三区免费在线观看 | 一区二区91| 欧美日韩国产影片| 亚洲小少妇裸体bbw| 亚洲精品一区二区三区樱花| 欧美www视频在线观看| 国产三级欧美三级| 久久亚洲春色中文字幕| 欧美一激情一区二区三区| 国产欧美大片| 欧美大片在线看免费观看| 裸体一区二区| 一区二区三区四区五区精品| 亚洲婷婷国产精品电影人久久| 国产精品日韩精品欧美在线| 久久成人18免费观看| 麻豆成人av| 亚洲欧美日韩精品久久久| 亚洲欧美国产精品va在线观看 | 亚洲国产乱码最新视频| 美女亚洲精品| 亚洲夜晚福利在线观看| 午夜一区不卡| 亚洲国产成人精品久久| 亚洲永久字幕| 日韩视频在线一区二区| 午夜在线电影亚洲一区| 中日韩美女免费视频网站在线观看| 亚洲欧美日韩电影| 亚洲视频1区| 欧美二区视频| 国产乱码精品一区二区三区不卡| 欧美 亚欧 日韩视频在线| 欧美视频中文字幕在线| 亚洲电影av| 亚洲国产另类久久久精品极度| 亚洲主播在线观看| 中日韩视频在线观看| 欧美精品成人| 亚洲激情一区二区| 亚洲人成精品久久久久| 欧美主播一区二区三区| 久久精品亚洲热| 国产精品美女久久久| 亚洲综合三区| 久久久久久久999| 亚洲国产精品久久久久婷婷884 | 国产欧美精品日韩精品| 亚洲欧洲日韩综合二区| 亚洲精品五月天| 欧美日韩国产经典色站一区二区三区| 欧美激情中文字幕乱码免费| 亚洲精品老司机| 欧美日韩一区国产| 亚洲女同性videos| 女女同性精品视频| 一区二区欧美在线| 国产伦精品一区二区三区高清| 亚洲欧洲99久久| 欧美国产精品专区| 亚洲视频一区在线| 在线观看精品一区| 欧美午夜电影一区| 欧美国产日韩一区| 亚洲尤物影院| 亚洲人线精品午夜| 欧美尤物巨大精品爽| 亚洲美女视频在线免费观看| 欧美片在线播放| 老司机免费视频一区二区三区| 一道本一区二区| 亚洲精品日韩在线观看| 久久天堂av综合合色| 亚洲片区在线| 免费亚洲网站| 亚洲高清一二三区| 亚洲网址在线| 亚洲美女黄色|