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

巢穴

about:blank

7月30日 練習

題解
題目名稱    二進制除法          奇怪的函數      最小函數值          矩陣乘法
源文件名稱  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秒
內存限制    32M                 32M             32M                 32M
測試點      10個                10個            10個                10個
分值        100分               100分           100分               100分


Problem 1 : binary
二進制除法

問題描述
    二進制數n mod m的結果是多少?

輸入數據
    第一行輸入一個二進制數n。
    第二行輸入一個二進制數m。

輸出數據
    輸出n mod m的結果。

輸入樣例
1010101010
111000

輸出樣例
1010

時間限制
    各測試點1秒

內存限制
    你的程序將被分配32MB的運行空間

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

題解:  進制轉換,當然,直接用二進制去做也是可以的

#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
奇怪的函數

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

輸入數據
    輸入一個正整數n。

輸出數據
    輸出使得x^x達到n位數字的最小正整數x。

輸入樣例
11

輸出樣例
10

時間限制
    各測試點1秒

內存限制
    你的程序將被分配32MB的運行空間

數據規模
    n<=2 000 000 000

題解:  關鍵是trunc((x*log10(x)/log10(10)+1))這個公式.可以直接求出x^x的位數.然后二分..糾結的是我二分竟然寫錯了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
最小函數值

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

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

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

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

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

時間限制
    各測試點1秒

內存限制
    你的程序將被分配32MB的運行空間

數據規模
    n,m<=10 000

題解: 用小頭堆來維護這些函數的值..每次取出最小的保存.然后對其更新..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的矩陣,時間復雜度為A x B x C。矩陣乘法滿足結合律(但不滿足交換律)。順序給出n個矩陣的大小,請問計算出它們的乘積的最少需要花費多少時間。

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

輸出數據
    輸出最少需要花費的時間。

樣例輸入
3
10 100
100 5
5 50

樣例輸出
7500

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

時間限制
    各測試點1秒

內存限制
    你的程序將被分配32MB的運行空間

數據范圍
    n<=100。

題解:  動態規劃,最小代價子母樹 

#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)  編輯 收藏 引用 所屬分類: 數據結構與算法


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            欧美激情一区二区三区在线视频| 欧美连裤袜在线视频| 欧美一区二区三区在线免费观看| 欧美fxxxxxx另类| 久久精品视频在线| 国产精品白丝jk黑袜喷水| 国产日产欧美a一级在线| 国产综合欧美在线看| 久久精品人人| 久久精品亚洲热| 久久久精彩视频| 牛牛国产精品| 欧美日韩一区二区三区免费| 亚洲国产精品一区二区第四页av| 免费精品视频| 国产精品99久久99久久久二8| 久久亚洲不卡| 亚洲在线1234| 夜夜嗨av色综合久久久综合网| 国产亚洲精品自拍| 欧美激情aⅴ一区二区三区| 麻豆精品网站| 久久欧美中文字幕| 亚洲精品影视| 91久久在线| 久久久久久久久综合| 夜夜爽99久久国产综合精品女不卡 | 国产一区二区三区av电影 | 99re视频这里只有精品| 久久精品国产99精品国产亚洲性色 | 欧美夫妇交换俱乐部在线观看| 亚洲高清一二三区| 欧美一区二区三区日韩| 欧美国产在线观看| 欧美日韩一区精品| 亚洲福利专区| 久久婷婷国产综合尤物精品 | 久久国产精品99久久久久久老狼| 欧美激情1区2区3区| 亚洲国产精品高清久久久| 欧美一区日本一区韩国一区| 国内成+人亚洲| 亚洲一区二区三区中文字幕| 午夜精品一区二区三区在线视 | 欧美激情精品久久久久久蜜臀| 欧美—级在线免费片| 久久9热精品视频| 欧美日韩亚洲高清| 原创国产精品91| 香蕉国产精品偷在线观看不卡 | 久久久蜜桃精品| 亚洲欧美国产高清va在线播| 国产香蕉久久精品综合网| 亚洲资源在线观看| 亚洲欧美久久| 亚洲精品美女久久久久| 欧美成人综合网站| 欧美高清在线| 欧美日韩国产电影| 久久久久国产精品一区二区| 99视频超级精品| 欧美三区美女| 一区二区日韩伦理片| 亚洲午夜激情网页| 国产日韩欧美日韩| 一本色道久久综合亚洲二区三区| 欧美+日本+国产+在线a∨观看| 欧美激情91| 毛片av中文字幕一区二区| 欧美午夜在线一二页| 国产一区二区av| 亚洲激情网站| 日韩视频免费在线观看| 亚洲一区欧美二区| 亚洲激情网站免费观看| 亚洲成色精品| 欧美一区二区精品久久911| 亚洲欧洲一区二区天堂久久| 欧美一区成人| 午夜精品av| 日韩手机在线导航| 国产精品日韩在线播放| 狼狼综合久久久久综合网 | 麻豆乱码国产一区二区三区| 国产一区二区av| 一本大道av伊人久久综合| 亚洲高清一区二| 亚洲人成绝费网站色www| 韩国三级在线一区| 亚洲国产日韩欧美在线图片| 亚洲九九精品| 亚洲国产精品va在看黑人| 亚洲欧洲另类| 国产精品乱码一区二区三区| 久久性色av| 久久免费高清视频| 日韩视频二区| 久久久久亚洲综合| 午夜欧美大尺度福利影院在线看| 国产精品久久九九| 久久久夜精品| 亚洲一区二区三区四区中文| 亚洲专区在线| 日韩视频中文字幕| 欧美黄色一区| 国产精品久久婷婷六月丁香| 亚洲精一区二区三区| 午夜精品区一区二区三| 国产精品久久国产精麻豆99网站| 国产精品久久福利| 欧美在线|欧美| 久久亚洲精品欧美| 国产亚洲激情视频在线| 国内精品久久久久久久97牛牛| 国产日韩欧美制服另类| 欧美凹凸一区二区三区视频| 久久久夜夜夜| 在线观看日韩av电影| 亚洲一二三区在线观看| 国产精品一区免费在线观看| 久久偷窥视频| 亚洲综合大片69999| 欧美一区二区三区男人的天堂| 国产农村妇女精品| 欧美三区在线| 欧美视频精品一区| 国产亚洲欧美一区二区| 99精品视频一区| 久久久蜜桃精品| 快射av在线播放一区| 欧美亚一区二区| 久久久噜噜噜| 久久久久久久网| 国产一区二区三区高清播放| 亚洲福利专区| 免费观看成人| 亚洲综合久久久久| 国产在线精品一区二区中文| 最新亚洲激情| 亚洲高清免费视频| 99天天综合性| 亚洲激情成人在线| 亚洲黄色成人| 久久爱www久久做| 国产精品激情| 欧美视频在线视频| 亚洲精品久久久久久久久久久| 女同性一区二区三区人了人一 | 亚洲精品国精品久久99热| 国产精品系列在线播放| 久久久成人精品| 久久手机免费观看| 亚洲精品男同| 一本色道久久综合狠狠躁篇怎么玩| 国产手机视频精品| 艳妇臀荡乳欲伦亚洲一区| 宅男精品视频| 久久成人免费视频| 久久久国产成人精品| 欧美fxxxxxx另类| 欧美一区二区精品久久911| 中文欧美在线视频| 午夜免费久久久久| 亚洲午夜国产一区99re久久| 午夜视频一区| 久久久久久穴| 亚洲你懂的在线视频| 国产精品高清网站| 国产精品视频免费| 亚洲精品在线免费观看视频| 香蕉成人伊视频在线观看| 欧美一级免费视频| 一本久久知道综合久久| 国产精品久久久久久五月尺| 亚洲第一黄色网| 国产精品视频内| 久久久久亚洲综合| 欧美国产一区二区| 欧美性色aⅴ视频一区日韩精品| 国产精品中文字幕欧美| 国产精品久久久久久久久久久久久久| 欧美日韩成人一区| 欧美日本中文字幕| 国产欧美日韩一区二区三区在线| 亚洲第一精品久久忘忧草社区| 91久久亚洲| 激情欧美国产欧美| 一区二区三区自拍| 亚洲综合日韩| 亚洲日韩欧美视频一区| 欧美日韩在线大尺度| 激情另类综合| 亚洲精品裸体| 亚洲区在线播放| 亚洲女女女同性video| 国产深夜精品| 99精品欧美一区二区三区| 在线视频欧美日韩| 狠狠色噜噜狠狠色综合久| 亚洲人成77777在线观看网|