2013山東省賽回顧A F I

2021-06-29 14:50:25 字數 1824 閱讀 6535

a題:

題目大意:按照逆時針順序給出等邊三角形的兩個頂點,求另乙個頂點。

向量旋轉。。。之前做過sgu的一道關於向量旋轉的題,在這裡用上了。

根據已知兩點座標,將向量逆時針旋轉π/3度,即可求得另一頂點座標。

#include#include#includeusing namespace std;

#define n 160

#define pi acos(-1.0)

typedef double db;

struct p

p[n];

p rol(p s,p e,db a,db k) //向量se,逆時針旋轉a度後,乘上比例係數k,返回新的終點座標

db dis(p a,p b)

int main()

return 0;

}

f題:找規律/二進位制

題目大意:給出a0到an-1,和乙個表示式 (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1)。給出q,求x^q的係數。

觀察表示式,可以發現,給出n,可以構成x^0、x^1、x^2、……、x^(2^n-1)項,並且前面的係數就是將對應的指數化為二進位制後,1所對應的係數之乘積。比如x^9的係數,把9化為二進位制:1001,則對應的係數為a3*a0.

這樣,對於給定的q,若大於2^n-1,則結果為0,否則將二進位制位上對應為1的係數相乘即可。

感覺題中的資料有問題。。1<=ai<=100,n<=50,那麼係數之乘積不會超過5000。。即使中間結果不取膜,也應該不會溢位。但中間不取膜就wa,取膜就過了。。

#include#include#include#include#includeusing namespace std;

typedef double db;

typedef long long ll;

#define mod 2012

int a[105];

int main()

if(p&1) ans*=a[i];

++i;

p>>=1;

ans%=mod;

}printf("%d\n",ans%mod);}}

return 0;

}

i題:簡單的概率dp求期望。

題目大意:n層的三角形,第一層1個格仔、第二層2個,以此類推。

先要從第一層走到最後一層的最左邊的那個格仔。求移動步數的期望。

已知:1、若當前格仔左邊沒有格仔,則向左下、向右下移動的概率為a、b。a+b=1

2、當前格仔下面沒有格仔了,則向左移動概率為1

3、左邊有格仔、下面也有格仔,則向左下、向右下移動的概率為c、d,向左移動的概率為e。c+d+e=1

分析:這類求期望的問題,通常都是設出到當前狀態到目的地的期望,並從目標狀態倒推回初始狀態。

設dp[i][j]表示從座標(i,j)到終點的移動步數期望。

我這裡是設起點座標為(1,1),終點座標為(n,1)。

那麼dp[n][1]=0。

然後可以遞推出最後一行的期望。再由最後一行依次往上推即可。

#include#include#include#include#includeusing namespace std;

typedef double db;

db dp[50][50];

int main()

printf("%.2lf\n",dp[1][1]);

}return 0;

}



總結山東省賽2015

省賽總結 剛開始,暴力破解試題袋,三個人找水題做,我看的h,hms看a,zzh看的c,看出是做過的類似的博弈論,直接敲wa了,查bug沒有,加了個return 0,過了2y,這時再看榜,a題c題已經有許多過掉的,我和hms看a題,看完覺得簡單,就是個結構體排序,直接敲,過一遍樣例就交,結果wa,開始...

19山東省賽 K Happy Equation

當時省賽花了很長時間在這道題上,最後也沒做出來,特別傷心啊啊啊啊賽後仔細研究了一下,怎麼說呢,學到了很多,也認識到了自己的不足,唉 little sub has just received an equation,which is shown below,as his birthday gift.a...

2019山東省賽補題

a題 題解 a題注意看清題目每月三十天每週五天很關鍵,因為每月星期幾是固定的。include define ll long long using namespace std const ll nl 1e5 5 ll a nl ll b nl ll c nl int main else if s tu...