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

巢穴

about:blank

7月30日 練習(xí)

題解
題目名稱    二進制除法          奇怪的函數(shù)      最小函數(shù)值          矩陣乘法
源文件名稱  binary.(pas/c/cpp)  xx.(pas/c/cpp)  minval.(pas/c/cpp)  matrix.(pas/c/cpp)
輸入文件名  binary.in           xx.in           minval.in           matrix.in
輸出文件名  binary.out          xx.out          minval.out          matrix.out
時間限制    1秒                 1秒             1秒                 1秒
內(nèi)存限制    32M                 32M             32M                 32M
測試點      10個                10個            10個                10個
分值        100分               100分           100分               100分


Problem 1 : binary
二進制除法

問題描述
    二進制數(shù)n mod m的結(jié)果是多少?

輸入數(shù)據(jù)
    第一行輸入一個二進制數(shù)n。
    第二行輸入一個二進制數(shù)m。

輸出數(shù)據(jù)
    輸出n mod m的結(jié)果。

輸入樣例
1010101010
111000

輸出樣例
1010

時間限制
    各測試點1秒

內(nèi)存限制
    你的程序?qū)⒈环峙?2MB的運行空間

數(shù)據(jù)規(guī)模
    n的長度(二進制數(shù)的位數(shù))<=200 000;
    m的長度(二進制數(shù)的位數(shù))<=20。

題解:  進制轉(zhuǎn)換,當(dāng)然,直接用二進制去做也是可以的

#include <iostream>
#include 
<fstream>
#include 
<string>
#include 
<math.h>
using namespace std;

ifstream fin(
"binary.in");
ofstream fout(
"binary.out");

string str1;
string str2;
int len1,len2;
int num1,num2;
long StrToInt(string str)
{
    
     
long reNum=0;
     
int len=str.length();
     
int p=0;
     
for (int i=len-1;i>=0;i--)
     
{
         
int u=(int)pow(2,p);p++;
         
switch(str[i])
         
{
          
case '1':reNum+=u;break;
          
default:break;
         }

     }

     
return reNum;
}

string IntToStr(int value)
{
       
string str="";
       
while (value!=0)
       
{
             
int x=value%2;
             
if (x==0) str='0'+str; else str='1'+str;
             value
=value/2;
       }

       
return str;
}

void readp()
{
     fin
>>str1;
     fin
>>str2;
     num2
=StrToInt(str2);
}

void solve()
{
     
string str="";
     
for (int i=0;i<str1.length();i++)
     
{
         str
+=str1[i];
         num1
=StrToInt(str);
         
if (num1>=num2)
         
{
          
int x=num1-num2;
          str
=IntToStr(x);
         }

     }

     fout
<<str<<endl;
}

int main()
{
    readp();
    solve();
    
return 0;
}

 Problem 2 : xx
奇怪的函數(shù)

問題描述
    使得x^x達到或超過n位數(shù)字的最小正整數(shù)x是多少?

輸入數(shù)據(jù)
    輸入一個正整數(shù)n。

輸出數(shù)據(jù)
    輸出使得x^x達到n位數(shù)字的最小正整數(shù)x。

輸入樣例
11

輸出樣例
10

時間限制
    各測試點1秒

內(nèi)存限制
    你的程序?qū)⒈环峙?2MB的運行空間

數(shù)據(jù)規(guī)模
    n<=2 000 000 000

題解:  關(guān)鍵是trunc((x*log10(x)/log10(10)+1))這個公式.可以直接求出x^x的位數(shù).然后二分..糾結(jié)的是我二分竟然寫錯了2次..

#include <iostream>
#include 
<fstream>
#include 
<string>
#include 
<math.h>
using namespace std;

ifstream fin(
"xx.in");
ofstream fout(
"xx.out");

const long maxn=250000000;
long n;

void readp()
{
     fin
>>n;
     
}

long digit(long x)
{
     
if (x==0return 0;
     
return trunc((x*log10(x)/log10(10)+1));
}

void solve()
{
 
     
long left=0;
     
long right=maxn;
     
long mid=0;
     
while (true)
     
{
      mid
=(right+left)/2;
      
if (digit(mid-1)>=n) right=mid-1
      
else
      
if (digit(mid)<n) left=mid+1;
      
else
      
break;
     }

    
     fout
<<mid<<endl;
     
}

int main()
{
    readp();
    solve();
    
return 0;
}

 
Problem 3 : minval
最小函數(shù)值

問題描述
    有n個函數(shù),分別為F1,F2,...,Fn。定義Fi(x)=Ai*x^2+Bi*x+Ci(x∈N*)。給定這些Ai、Bi和Ci,請求出所有函數(shù)的所有函數(shù)值中最小的m個(如有重復(fù)的要輸出多個)。

輸入數(shù)據(jù)
    第一行輸入兩個正整數(shù)n和m。
    以下n行每行三個正整數(shù),其中第i行的三個數(shù)分別位Ai、Bi和Ci。輸入數(shù)據(jù)保證Ai<=10,Bi<=100,Ci<=10 000。

輸出數(shù)據(jù)
    輸出將這n個函數(shù)所有可以生成的函數(shù)值排序后的前m個元素。
    這m個數(shù)應(yīng)該輸出到一行,用空格隔開。

樣例輸入
3 10
4 5 3
3 4 5
1 7 1

樣例輸出
9 12 12 19 25 29 31 44 45 54

時間限制
    各測試點1秒

內(nèi)存限制
    你的程序?qū)⒈环峙?2MB的運行空間

數(shù)據(jù)規(guī)模
    n,m<=10 000

題解: 用小頭堆來維護這些函數(shù)的值..每次取出最小的保存.然后對其更新..O(m log n)

#include <iostream>
#include 
<fstream>
using namespace std;

ifstream fin(
"minval.in");
ofstream fout(
"minval.out");

const int MAXNM=10001;
int n,m;
int a[MAXNM],b[MAXNM],c[MAXNM];
int fcNum[MAXNM],fcId[MAXNM],fcT[MAXNM];
int answer[MAXNM];
int len=0;
void swap(int &x,int &y)
{
     
int temp;
     temp
=x;x=y;y=temp;
}



void insert(int num,int id,int t)
{
     len
++;
     fcNum[len]
=num;
     fcId[len]
=id;
     fcT[len]
=t;
       
int x=len;
       
while (x>1)
       
{
             
if (fcNum[x]<fcNum[x/2])
             
{
                                      
                swap(fcNum[x],fcNum[x
/2]);
                swap(fcId[x],fcId[x
/2]);
                swap(fcT[x],fcT[x
/2]);
                x
=x/2;
             }

             
else
                
break;
       }

}

void update()
{
     
int id=fcId[1];
     fcT[
1]++;
     fcNum[
1]=a[id]*fcT[1]*fcT[1]+b[id]*fcT[1]+c[id];
     
     
int x=1;
     
while (x*2<=n)
     
{
           
int left=x*2,right=x*2+1,u;
           
if (right>n) u=left;
           
else
           
{
               
if (fcNum[left]<=fcNum[right]) u=left;
               
else
               
{
                   u
=right;
               }

           }

           
if (fcNum[x]>fcNum[u])
           
{
              swap(fcNum[u],fcNum[x]);
              swap(fcId[u],fcId[x]);
              swap(fcT[u],fcT[x]);
              x
=u;
           }

           
else
               
break;
     }

}

void readp()
{
     
     fin
>>n>>m;
     
for (int i=1;i<=n;i++)
     
{
         fin
>>a[i]>>b[i]>>c[i];
         
int num,id,t;
         num
=a[i]+b[i]+c[i];
         id
=i;
         t
=1;
         insert(num,id,t);
     }

}

void solve()
{
     
for (int i=1;i<=m;i++)
     
{
         answer[i]
=fcNum[1];
         
         update();
     }

}

void writep()
{
     
for (int i=1;i<=m;i++)
     
{
         
if (i==m) {fout<<answer[i];continue;}
         fout
<<answer[i]<<" ";
     }

}

int main()
{
    readp();
    solve();
    writep();
    
return 0;
}



Problem 4 : matrix
矩陣乘法

問題描述
    一個A x B的矩陣乘以一個B x C的矩陣將得到一個A x C的矩陣,時間復(fù)雜度為A x B x C。矩陣乘法滿足結(jié)合律(但不滿足交換律)。順序給出n個矩陣的大小,請問計算出它們的乘積的最少需要花費多少時間。

輸入數(shù)據(jù)
    第一行輸入一個正整數(shù)n,表示有n個矩陣。
    接下來m行每行兩個正整數(shù)Xi,Yi,其中第i行的兩個數(shù)表示第i個矩陣的規(guī)模為Xi x Yi。所有的Xi、Yi<=100。輸入數(shù)據(jù)保證這些矩陣可以相乘。

輸出數(shù)據(jù)
    輸出最少需要花費的時間。

樣例輸入
3
10 100
100 5
5 50

樣例輸出
7500

樣例說明
    順序計算總耗時7500;先算后兩個總耗時75000。

時間限制
    各測試點1秒

內(nèi)存限制
    你的程序?qū)⒈环峙?2MB的運行空間

數(shù)據(jù)范圍
    n<=100。

題解:  動態(tài)規(guī)劃,最小代價子母樹 

#include <iostream>
#include 
<fstream>

using namespace std;

ifstream fin(
"matrix.in");
ofstream fout(
"matrix.out");

const int MAXN=101;
int n;


int le[MAXN],ri[MAXN];
int dpl[MAXN][MAXN],dpr[MAXN][MAXN],dp[MAXN][MAXN];
void readp()
{
     fin
>>n;
     
for (int i=1;i<=n;i++)
       fin
>>le[i]>>ri[i];
}



void solve()
{
     
for (int j=1;j<=n;j++)
     
{
         
for (int i=1;i<=n;i++)
         
{         
            
if (j==1{dpl[i][i]=le[i];dpr[i][i]=ri[i];dp[i][i]=0;continue;}
            
int k=i+j-1;
            
if (k>n) continue;
            
int min=10000000;
            
for (int l=i;l<k;l++)
            
{
                
int u=dpl[i][l]*dpr[i][l]*dpr[l+1][k]+dp[i][l]+dp[l+1][k];
                
if (min>u)
                
{
                   dpl[i][k]
=dpl[i][l];
                   dpr[i][k]
=dpr[l+1][k];
                   min
=u;
                   dp[i][k]
=u;
                }

                
            }

         
                   
                 
         }

     }

     fout
<<dp[1][n]<<endl;
}

int main()
{
    readp();
    solve();
    
return 0;
}

 

posted on 2009-07-31 12:46 Vincent 閱讀(1051) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99精品99久久久久久宅男| 国产精品久久久久久久久婷婷| 99在线热播精品免费99热| 国产精品久久午夜夜伦鲁鲁| 免费不卡欧美自拍视频| 亚洲一二三区精品| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美日韩一区二区三区在线| 亚洲日本一区二区三区| 国内精品免费午夜毛片| 国产精品人成在线观看免费| 欧美精品久久一区| 久久亚洲精品欧美| 欧美专区18| 性欧美1819性猛交| 亚洲午夜一区二区| 99视频日韩| 亚洲毛片在线观看.| 欧美.com| 欧美大片网址| 欧美freesex8一10精品| 麻豆av福利av久久av| 欧美资源在线观看| 午夜亚洲激情| 午夜伦欧美伦电影理论片| 国产精品99久久久久久久久久久久| 在线观看日韩国产| 海角社区69精品视频| 国产毛片精品国产一区二区三区| 欧美四级伦理在线| 欧美天堂在线观看| 国产精品白丝jk黑袜喷水| 欧美日韩喷水| 欧美婷婷久久| 国产精品草莓在线免费观看| 欧美日韩精品二区| 国产精品家教| 国产精品视频99| 国产美女在线精品免费观看| 国产精品亚洲一区| 国产色爱av资源综合区| 国外成人在线视频网站| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 久久国产黑丝| 欧美中文字幕精品| 久久久久久久久久码影片| 久久精品国产亚洲一区二区三区 | 亚洲国产一成人久久精品| 欧美激情小视频| 亚洲国产精品va在看黑人| 亚洲欧洲视频在线| 一本色道久久综合亚洲91| 中文精品在线| 欧美在线视频播放| 欧美不卡激情三级在线观看| 欧美精品色综合| 国产精品二区影院| 国产色产综合产在线视频| 在线精品福利| 一区二区三区欧美成人| 亚洲欧美在线高清| 麻豆精品视频在线观看| 亚洲国产经典视频| 亚洲视频大全| 久久久久久一区| 欧美精品一区二区久久婷婷| 国产精品国产精品| 尤物九九久久国产精品的分类| 亚洲日产国产精品| 亚洲欧美日韩国产一区二区| 久久婷婷人人澡人人喊人人爽| 亚洲黄色免费网站| 亚洲一区二区三区精品视频| 久久久成人精品| 欧美日韩另类综合| 国产综合视频| 一区二区三区欧美在线| 久久久国产成人精品| 亚洲日本理论电影| 欧美一区二区视频在线观看2020| 欧美成人高清| 国产日韩综合| 一区二区三区四区五区精品| 久久人人爽爽爽人久久久| 99视频有精品| 美日韩精品视频| 国产精品社区| 一本色道久久88精品综合| 久久久五月婷婷| 一区二区三区国产在线| 久久亚洲不卡| 国产日韩精品综合网站| 亚洲精品看片| 久久亚洲电影| 亚洲一区二区三区乱码aⅴ蜜桃女| 免费不卡欧美自拍视频| 国产女优一区| 亚洲视频二区| 亚洲成在线观看| 久久精品视频在线| 国产精品青草综合久久久久99 | 久久丁香综合五月国产三级网站| 亚洲国产精品成人| 久久久精品性| 国产人成精品一区二区三| 夜色激情一区二区| 欧美成人激情视频| 久久精品国产久精国产一老狼| 国产精品入口夜色视频大尺度| 99这里有精品| 亚洲国产99精品国自产| 久久视频在线看| 国产亚洲一区二区三区| 性做久久久久久久免费看| 亚洲伦理在线免费看| 欧美v国产在线一区二区三区| 狠狠综合久久av一区二区小说 | 在线视频精品一区| 欧美高清视频| 久久中文字幕一区二区三区| 国内外成人免费激情在线视频| 亚洲欧美制服另类日韩| 一区二区三区www| 欧美区日韩区| 日韩亚洲欧美一区| 亚洲激情在线视频| 欧美国产亚洲精品久久久8v| 亚洲人成亚洲人成在线观看| 欧美风情在线观看| 老司机精品导航| 91久久国产综合久久蜜月精品| 欧美高清视频在线| 蜜桃久久精品一区二区| 亚洲第一中文字幕在线观看| 欧美99久久| 欧美~级网站不卡| 亚洲精品久久久久久下一站| 亚洲国产三级| 欧美日韩精品福利| 亚洲嫩草精品久久| 亚洲欧美国产高清va在线播| 国产精品一级二级三级| 久久精品在线视频| 久久久精品日韩| 亚洲精品久久久久中文字幕欢迎你| 亚洲高清不卡av| 欧美日韩免费一区二区三区| 亚洲欧美日韩精品久久亚洲区 | 欧美另类综合| 亚洲亚洲精品三区日韩精品在线视频 | 韩国免费一区| 欧美国产日韩一二三区| 欧美激情一区二区在线| 亚洲午夜伦理| 亚洲欧美一区二区三区极速播放 | 日韩午夜中文字幕| 一本色道**综合亚洲精品蜜桃冫 | 欧美日韩亚洲一区二区三区| 亚洲中午字幕| 久久gogo国模裸体人体| 最新国产成人在线观看| 999在线观看精品免费不卡网站| 欧美午夜精品久久久| 欧美一区观看| 快she精品国产999| 亚洲午夜在线观看| 久久精品国产综合精品| 日韩特黄影片| 亚洲欧洲99久久| 最新成人在线| 亚洲一区二区三区乱码aⅴ| 在线看日韩欧美| 亚洲视频免费在线| 黄色成人片子| 亚洲精选一区二区| 国产欧美一区二区精品忘忧草| 欧美aⅴ一区二区三区视频| 欧美日韩一区二区三区免费| 久久亚洲私人国产精品va媚药| 欧美激情综合网| 久久精品女人| 欧美日韩免费观看一区=区三区| 久久久久九九九| 欧美成人综合一区| 欧美伊久线香蕉线新在线| 欧美大色视频| 久久久久成人精品| 欧美午夜精品理论片a级大开眼界| 久久亚洲综合网| 国产精品久久久999| 欧美国产1区2区| 国产一区二区按摩在线观看| 亚洲精品一区二| 亚洲电影免费观看高清完整版| 亚洲视频第一页| 亚洲精品一区二区三区福利 | 国产精品高清免费在线观看| 欧美电影免费观看高清完整版| 国产精品一区二区三区久久久| 亚洲精品1234|