• <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 閱讀(261) 評論(0)  編輯 收藏 引用
            <2012年4月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            友情鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            伊人色综合久久天天网| www性久久久com| 热久久最新网站获取| 久久人人爽人人爽人人av东京热| 大香伊人久久精品一区二区| 一本一道久久综合狠狠老| 国产精品美女久久久久网| 色播久久人人爽人人爽人人片aV| 中文字幕乱码久久午夜| 久久99热这里只有精品国产| 亚洲愉拍99热成人精品热久久| 久久精品一区二区三区不卡| 国产香蕉久久精品综合网| 国产成人99久久亚洲综合精品| 国产精品久久久久久五月尺| 国产AⅤ精品一区二区三区久久| 无码国内精品久久人妻| 久久无码AV中文出轨人妻| 999久久久无码国产精品| 久久经典免费视频| 久久久久久国产精品美女| 精品久久久久久久| 精品久久777| 精品国产91久久久久久久 | 久久99精品国产| 亚洲精品蜜桃久久久久久| 四虎国产精品免费久久| 国产成人99久久亚洲综合精品| 国产精品一久久香蕉国产线看| 无码专区久久综合久中文字幕| 四虎国产精品成人免费久久| 日韩久久无码免费毛片软件| 久久精品中文字幕有码| 国产香蕉97碰碰久久人人| 久久久久婷婷| 色妞色综合久久夜夜| 一本色道久久99一综合| 欧洲成人午夜精品无码区久久| 色诱久久久久综合网ywww| 无码日韩人妻精品久久蜜桃| 久久精品欧美日韩精品|