幾何
給你等邊三角形的兩個點a和b,求第三個點c的座標;
且abc是逆時針的;
因為要求abc是逆時針的,所以可以直接用b繞a逆時針旋轉60°;
這裡有個通用的公式,證明稍微複雜,可以加到模板裡以備不時之需:
點(x1,y1)繞點(x2,y2)逆時針旋轉a角度後新的座標(x,y)為:
x=(x1-x2)*cos(a)-(y1-y2)*sin(a)+x2;
y=(x1-x2)*sin(a)+(y1-y2)*cos(a)+y2;
如果直接按照題意的等邊三角形的情況去畫圖推導也可以推導出來,不過這個公式比較普適。
#include #include有n個點、m條邊,問是否任意兩個點都是聯通的#include
#include
#include
#include
using
namespace
std;
intmain()
return0;
}
對每乙個點進行bfs,記錄下所有與其聯通的點,若最後所有點互相聯通
輸出kalimdor is just ahead,否則輸出另乙個。
ps:兩個點聯通不需要相鄰
pss:若用鄰接矩陣儲存會超時,此處使用vector優化
#include #include大冪的分解和、打表#include
#include
#include
using
namespace
std;
#define n 2020
intvis[n],ans[n][n];
vector
path[n];
intm,n;
void bfs(int
s) }
}bool
f()int
main()
for(int i=1; i<=n; i++)
bfs(i);
if(f())
printf(
"case %d: kalimdor is just ahead\n
",j);
else
printf(
"case %d: the burning shadow consume us all\n
",j);
}return0;
}
給出七個整數n,a,k,a,b,m,p和函式f(x),定義如下:
f(x)= k,x = 1
f(x)=(a * f(x-1)+ b)%m,x> 1
計算:( a^(f(1)) + a^(f(2)) + a^(f(3)) + ...... + a^(f(n)) ) % p.
用快速冪會超時,所以用陣列儲存f(x)的值,計算的時候直接去取。
將f(x)分解為a*k+b,再利用x^(a+b)=x^a * x^b,即可。
#include #define max 3333求滿足以某元素為中心,左邊遞增右邊遞減的子串數目long
long
t,n,a,k,a,b,m,p;
long
long l1[max+10], l2[max+10
];void
l()int main(void
) printf(
"case #%d: %lld\n
", cas, sum);
cas++;
}return0;
}
ps:最小長度為3,切中心元素左右至少各乙個元素
pps:aaba中,前兩個a是不同的有a1ba、a2ba兩個答案
求出每個字元為中心的左側遞增子串行和右側遞減子串行
然後左右相乘求和
#include #include規律 二進位制#include
using
namespace
std;
#define max 100010
char
ch[max];
intn,a[max],dp1[max],dp2[max],dp[max];
intmain()
memset(dp,
0, sizeof
(dp));
for(int i = n-1; i >= 0; i--)
int ans = 0
;
for(int i = 0; i < n; i++)
ans = (ans+dp1[i]*dp2[i])%2012
; cout
<< ans <
}return0;
}
求:(a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1)
展開式中x^q的係數。
首先,看到資料範圍就可以猜測這應該是道規律題。
然後,觀察x的指數:2^0 2^1 ... 2^(n-1),可以聯想到二進位制
將樣例3、4寫成二進位制的形式
3 = 1 1
a1 a0
4 = 1 0 0
a2 a1 a0
另外發現展開式中的x的指數沒有相同的項,即不會合併同類項
規律:結果為二進位制為1的位置對應的係數相乘
#include int main(void概率dp/數學期望)
if(p%2
) res = (res * s[j]) % 2012
; j++;
p /= 2
; }
printf(
"%lld\n
", res);}}
return0;
}
乙個金字塔,從頂端往下走,規定只能向左、左下、右下走,給你對應的概率,求從頂端走到最底層的左下角那個房間的期望。
輸入層數n還有五個浮點數a,b,c,d,e;
當只有乙個房間的時候,概率是1;
當沒有左,只有左下和右下的時候,概率是a和b; a+b=1;
當左,左下,右下都有的時候,概率是c,d,e; c+d+e=1;
綜合思想是:從左下角往頂端倒推;
期望基本公式:
期望基本性質:
#include #include水題模擬#include
#include
#include
#include
using
namespace
std;
intmain() ;
for(int i=n-1;i>0;i--)
for(int i=n-1;i>0;i--)
printf(
"%.2lf\n
",dp[1][1
]); }
return0;
}
一開始印表機能列印s張,每一隊有需要列印的紙張數目,如果該隊列印完則到下一隊,如果該隊列印過程中紙張用完,則新的紙張會到達,而新紙張的數目是在原紙張本來數目上進行s=(s*x+y)%mod的運算,新紙張來後,列印序列必須從0開始,輸出此過程;
直接模擬;
ps:0張也是可以輸出的;
#include #include#include
using
namespace
std;
struct
node
team[
105];
intmain()
else
} }
printf("\n
");
} return
0;
}
第六屆山東省省賽題解
給出n個人的身高和體重 要求按身高排序後 奇數序號的人一隊,偶數序號的人一隊 體重大的一隊獲勝 水題,考察點是結構體的排序 要注意的是變數的初始化以及資料型別的精度和輸入 struct node a 110 bool cmp node a,node b intmain sort a,a n,cmp ...
2015山東省省賽總結 by Merc A
說說今年省賽吧。從週六開始去山科大開始,其實一開始我以為是去石油的,結果都跟那邊同學說好了,又被人白白鄙視了一頓,題外話。吹了一路的海風導致晚上七點就昏昏欲睡,跟隊長在房裡睡到八點,然後我就找大腦袋跟鶴爺出去逛 這倆貨出門買了點吃的轉身就回去爐石了,真是。晚上劉老師還給我們說了一下明天的注意。以及白...
2023年第九屆山東省省賽比賽總結
這次比賽是一場極其失敗的比賽。至於題目什麼問題我就不說了。反省一下我們自己的問題 1 沒有把所有題目讀完。d題據說也是資料有問題,可以做的,然而這場比賽我們只有這道題沒讀。2 強制否定g題。雖然g題想想可能出來,但是乙個隊友說做不了,我們兩個人就想都沒想看別的題去了,侷限於乙個人的想法,但其實g題也...