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

巢穴

about:blank

7月30日 練習

題解
題目名稱    二進制除法          奇怪的函數(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)換,當然,直接用二進制去做也是可以的

#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 閱讀(1047) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   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>
            猫咪成人在线观看| 亚洲欧美精品suv| 日韩午夜免费视频| 亚洲人妖在线| 麻豆av一区二区三区久久| 久久久久综合网| 国产亚洲亚洲| 亚洲欧美综合精品久久成人| 亚洲欧美久久| 国产精品美女www爽爽爽| 一区二区国产精品| 亚洲综合日韩| 国产精品人人做人人爽| 亚洲一区国产| 欧美中文在线字幕| 国产日韩三区| 久久岛国电影| 欧美阿v一级看视频| 亚洲国产精品v| 欧美风情在线观看| 亚洲卡通欧美制服中文| 亚洲伊人久久综合| 国产精品视频免费观看| 欧美一区二粉嫩精品国产一线天| 欧美制服丝袜第一页| 一区二区亚洲欧洲国产日韩| 蜜桃av综合| 亚洲精品国产视频| 一本色道久久88亚洲综合88| 欧美理论电影在线观看| 一区二区福利| 久久伊人免费视频| 亚洲精品在线免费观看视频| 欧美三区在线| 欧美一区2区视频在线观看| 老司机一区二区| 日韩视频永久免费观看| 欧美色一级片| 欧美主播一区二区三区美女 久久精品人| 久久久久免费视频| 日韩一区二区精品视频| 国产精品久久久久一区二区三区| 欧美一级播放| 91久久国产精品91久久性色| 亚洲欧美综合另类中字| 影院欧美亚洲| 欧美网站大全在线观看| 欧美一区二视频在线免费观看| 美女日韩在线中文字幕| 中文网丁香综合网| 韩日精品中文字幕| 欧美人与性动交cc0o| 欧美一区二区三区免费大片| 亚洲高清色综合| 欧美中文在线免费| 一区电影在线观看| 国产一区二区在线免费观看 | 久久综合狠狠综合久久综青草| 亚洲韩国一区二区三区| 国产精品伊人日日| 欧美插天视频在线播放| av成人免费在线观看| 午夜精品久久99蜜桃的功能介绍| 麻豆成人精品| 亚洲综合视频1区| 亚洲国产精品一区二区第一页| 欧美四级在线观看| 久久久噜久噜久久综合| 在线亚洲高清视频| 亚洲高清一区二| 欧美一区在线视频| 一区二区三区|亚洲午夜| 在线观看亚洲精品视频| 国产精品一卡二卡| 欧美日韩在线精品一区二区三区| 久久综合综合久久综合| 欧美一区二区日韩| 亚洲婷婷综合色高清在线| 亚洲国产成人精品久久| 久热精品视频在线观看| 欧美一区二区三区在线观看 | 欧美亚州一区二区三区| 欧美大片在线看| 久久视频这里只有精品| 欧美一区二区精品| 亚洲欧美日韩高清| 一区二区日韩欧美| 亚洲精品在线一区二区| 亚洲国产成人av在线| 欧美jizzhd精品欧美巨大免费| 久久精品女人| 欧美在线地址| 欧美在线观看视频在线| 先锋影音久久久| 性欧美大战久久久久久久免费观看 | 国产精品va在线| 欧美日韩亚洲在线| 欧美日韩成人综合在线一区二区| 免费在线观看日韩欧美| 久久在线免费| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久九九免费视频| 久久成人av少妇免费| 午夜在线成人av| 午夜精品久久久久99热蜜桃导演| 亚洲综合色婷婷| 欧美一区二区三区的| 久久动漫亚洲| 久久亚洲一区二区三区四区| 鲁鲁狠狠狠7777一区二区| 米奇777在线欧美播放| 欧美激情第4页| 欧美午夜美女看片| 国产精品入口日韩视频大尺度| 国产精品资源在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 最新国产拍偷乱拍精品| 亚洲日韩欧美视频一区| 亚洲免费观看在线观看| 一区二区三区日韩精品| 亚洲欧美激情四射在线日 | 日韩西西人体444www| 亚洲精品一区久久久久久| 99riav久久精品riav| 亚洲无线观看| 欧美主播一区二区三区| 久久久噜噜噜久噜久久| 欧美xxxx在线观看| 亚洲精品国产品国语在线app| 中文av一区特黄| 欧美主播一区二区三区美女 久久精品人 | 中文亚洲欧美| 欧美一区二区三区久久精品茉莉花| 久久久www成人免费无遮挡大片| 男人的天堂成人在线| 欧美三级日韩三级国产三级| 国产亚洲一级| 99精品国产在热久久下载| 午夜在线a亚洲v天堂网2018| 久久中文在线| 亚洲伦理在线免费看| 午夜精品影院| 欧美国产高潮xxxx1819| 国产精品夜夜夜| 亚洲福利电影| 亚洲综合清纯丝袜自拍| 欧美v日韩v国产v| 亚洲桃花岛网站| 老司机免费视频久久| 国产精品人人做人人爽| 亚洲欧洲一级| 久久精品国产精品亚洲精品| 91久久线看在观草草青青| 香蕉久久久久久久av网站| 欧美激情精品久久久久久黑人 | 亚洲麻豆av| 久久精品国产第一区二区三区| 亚洲黄色成人| 久久国产精品久久国产精品| 欧美激情小视频| 韩国一区电影| 亚洲欧美日韩一区二区| 亚洲国产一区二区视频| 久久精品一二三区| 国产精品视频内| 一区二区三区成人精品| 免费亚洲网站| 欧美亚洲免费在线| 欧美婷婷六月丁香综合色| 在线精品国精品国产尤物884a| 欧美一级理论性理论a| 亚洲狼人精品一区二区三区| 玖玖精品视频| 韩日成人av| 久久成人综合网| 亚洲小说春色综合另类电影| 欧美精品国产一区| 亚洲承认在线| 久久日韩精品| 午夜伦理片一区| 国产精品日韩精品| 亚洲视频999| 亚洲欧洲日产国产综合网| 久久综合中文| 在线电影欧美日韩一区二区私密| 久久爱另类一区二区小说| 国产精品99久久久久久久女警 | 欧美精品久久久久久久久久| 亚洲国产成人精品女人久久久| 久久激情一区| 午夜视频一区在线观看| 国产精品乱人伦中文| 亚洲一区二区三区高清| 亚洲精选在线观看| 欧美日韩国产不卡在线看| 日韩午夜在线播放| 亚洲激情第一页| 欧美精品97| 亚洲午夜日本在线观看| 一本一本久久a久久精品综合妖精|