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...