由于這套題很簡(jiǎn)單并且做過就沒有一一去做只是把不會(huì)的做了一下
1:模擬
2:加分二叉樹
3:枚舉
4:數(shù)學(xué)題 維護(hù)一種平衡
當(dāng)年AC的程序如下:
#include<fstream>
using?namespace?std;
ifstream?cin("smiley.in");
ofstream?cout("smiley.out");
double?y64(double?k)
{
????if(k<64)?return?k;
????else?return?y64(k/64);
}
int?main()
{
????double?i,n,m;
????int?ans;
????cin>>m>>n;
????ans=0;
????i=y64(n/m);
????if((1<=i)&&(i<2))ans=0;
????if((2<=i)&&(i<4))ans=2;
????if((4<=i)&&(i<8))ans=4;
????if((8<=i)&&(i<16))ans=8;
????if((16<=i)&&(i<32))ans=16;
????if(32<=i)ans=32;
????cout<<ans;
????return?0;
}
5.唯一的有一定難度的題using?namespace?std;
ifstream?cin("smiley.in");
ofstream?cout("smiley.out");
double?y64(double?k)
{
????if(k<64)?return?k;
????else?return?y64(k/64);
}
int?main()
{
????double?i,n,m;
????int?ans;
????cin>>m>>n;
????ans=0;
????i=y64(n/m);
????if((1<=i)&&(i<2))ans=0;
????if((2<=i)&&(i<4))ans=2;
????if((4<=i)&&(i<8))ans=4;
????if((8<=i)&&(i<16))ans=8;
????if((16<=i)&&(i<32))ans=16;
????if(32<=i)ans=32;
????cout<<ans;
????return?0;
}
其實(shí)也不難
搞一個(gè)小根堆
隊(duì)中的元素為一些線段 維護(hù)向這個(gè)線段注水從開始到溢出的時(shí)間 要求每個(gè)線段的左端擋板與右端擋板均為線段中最高的
每次取根結(jié)點(diǎn)將它與它將溢出方向上的第一個(gè)線段合并 直至該線段為最左或最又的線段