• <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>
            posts - 195,  comments - 30,  trackbacks - 0

            Consider an arbitrary sequence of integers. One can place + or - operators between integers in the sequence, thus deriving different arithmetical expressions that evaluate to different values. Let us, for example, take the sequence: 17, 5, -21, 15. There are eight possible expressions:

            17 + 5 + -21 + 15 =  16
            17 + 5 + -21 - 15 = -14
            17 + 5 - -21 + 15 =  58
            17 + 5 - -21 - 15 =  28
            17 - 5 + -21 + 15 =   6
            17 - 5 + -21 - 15 = -24
            17 - 5 - -21 + 15 =  48
            17 - 5 - -21 - 15 =  18
            

            We call the sequence of integers divisible by K if + or - operators can be placed between integers in the sequence in such way that resulting value is divisible by K. In the above example, the sequence is divisible by 7 (17+5+-21-15=-14) but is not divisible by 5.

            You are to write a program that will determine divisibility of sequence of integers.

            Input

            There are multiple test cases, the first line is the number of test cases.
            The first line of each test case contains two integers, N and K (1 ≤ N ≤ 10000, 2 ≤ K ≤ 100) separated by a space.

            The second line contains a sequence of N integers separated by spaces. Each integer is not greater than 10000 by it's absolute value.

            Output

            Write to the output file the word "Divisible" if given sequence of integers is divisible by K or "Not divisible" if it's not.

            Sample Input

            2
            4 7
            17 5 -21 15
            4 5
            17 5 -21 15
            

            Sample Output

            Divisible
            Not divisible
            
            啟發:1,涉及整除就要聯想取模!!!!!!!!
                        2,這是有層次性,不要搞混,以下是錯誤代碼 
            #include<iostream>
            #include
            <cstdlib>
            using namespace std;
              
              
            int main()
              
            {
              freopen(
            "s.txt","r",stdin);
              freopen(
            "key.txt","w",stdout);
              
            int testnum;
              
            int num,pos;
              cin
            >>testnum;
              
            int a[101],temp,i,j;
              
            while(testnum--)
              
            {
                    memset(a,
            0,sizeof(a));
                    cin
            >>num>>pos;
                    cin
            >>temp;
                    temp
            %=pos;
                    
            if(temp<0)temp+=pos;
                    a[temp]
            =1;    
                    
            for(i=1;i<num;i++)
                    
            {
                        cin
            >>temp;
                        temp
            %=pos;
                        
            if(temp<0)temp+=pos;//temp%pos¿ÉÄÜÊǸºÊý 
                        for(j=0;j<pos;j++)
                        
            {
                            
            if(a[j]>0)
                              
            {
                                    a[(j
            +temp)%pos]++;
                                    
            if((j-temp)<0)
                                    
            {
                                        a[(j
            -temp)+pos]++;
                                    }

                                    
            else
                                    
            {
                                    a[j
            -temp]++;
                                    }

                                    
            if(temp!=0)
                                    a[j]
            =0;
                              }

                        }

                    }

                    
            if(a[0]>0)cout<<"Divisible"<<endl;
                    
            else cout<<"Not divisible"<<endl;
                }


              
            //system("PAUSE");
              return   0;
              }

            這是有層次性,再添加一個元素時,只能改變前一組a[j]的值

             if(a[j]>0)//
                  {
                  a[(j+temp)%pos]++;//這里的修改應該不應添加到前面的a[j]中去。
                        if((j-temp)<0)

            所以應當用兩個數組。

            #include<iostream>
            #include
            <cstdlib>
            using namespace std;
              
              
            int main()
              {
              freopen(
            "s.txt","r",stdin);
              freopen(
            "key.txt","w",stdout);
              
            int testnum;
              
            int num,pos;
              cin
            >>testnum;
              
            int a[101],temp,i,j;
              
            int b[101];
              
            while(testnum--)
              {
                    memset(a,
            0,sizeof(a));
                    memset(a,
            0,sizeof(b));
                    cin
            >>num>>pos;
                    cin
            >>temp;
                    temp
            %=pos;
                    
            if(temp<0)temp+=pos;
                    a[temp]
            =1;    
                    
            for(i=1;i<num;i++)
                    {
                        cin
            >>temp;
                        temp
            %=pos;
                        
            if(temp<0)temp+=pos;//temp%pos¿ÉÄÜÊǸºÊý 
                        for(j=0;j<pos;j++)
                        {
                            
            if(a[j]>0)
                              {
                                    b[(j
            +temp)%pos]++;
                                    
            if((j-temp)<0)
                                    {
                                        b[(j
            -temp)+pos]++;
                                    }
                                    
            else
                                    {
                                    b[j
            -temp]++;
                                    }
                              }
                        }      
                              memset(a,
            0,sizeof(a));
                              
            for(j=0;j<pos;j++)
                              {
                                    
            if(b[j]>0)
                                    a[j]
            =1;
                              }
                              memset(b,
            0,sizeof(b));
                    }
                    
            if(a[0]>0)cout<<"Divisible"<<endl;
                    
            else cout<<"Not divisible"<<endl;
                }

              
            //system("PAUSE");
              return   0;
              }
            posted on 2009-06-30 22:20 luis 閱讀(258) 評論(0)  編輯 收藏 引用
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            友情鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            精品999久久久久久中文字幕| 久久精品成人| 精品免费久久久久久久| 国产精品99久久精品| 国产精品美女久久久网AV| 久久久久国产一区二区| 亚洲午夜久久久影院| 一本大道久久a久久精品综合| 无码任你躁久久久久久久| 欧美熟妇另类久久久久久不卡| 久久香蕉一级毛片| 久久久久久精品免费看SSS| 久久久久久久人妻无码中文字幕爆 | 久久精品国产亚洲AV高清热| 国产一区二区精品久久凹凸| 久久亚洲精品成人AV| 亚洲国产成人精品久久久国产成人一区二区三区综 | 好久久免费视频高清| 一本久久a久久精品综合香蕉| 久久久久久夜精品精品免费啦| 久久精品亚洲男人的天堂| 久久福利青草精品资源站免费| 久久精品国产99久久久古代| 久久久久综合中文字幕| 伊人久久精品线影院| 色88久久久久高潮综合影院 | 久久精品无码一区二区WWW| 久久久噜噜噜久久| A级毛片无码久久精品免费| 97久久超碰国产精品旧版| 精品久久久中文字幕人妻| 亚洲国产小视频精品久久久三级| 日本免费久久久久久久网站| 精品久久久久久亚洲精品| 久久精品中文騷妇女内射| 乱亲女H秽乱长久久久| 奇米影视7777久久精品人人爽| 天天影视色香欲综合久久| 中文字幕无码av激情不卡久久| 一本大道久久东京热无码AV| 久久精品免费全国观看国产|