原创 codeforces528E Triangles 3000

題面 題意 在平面上有n條直線,隨機選擇三條,其面積的期望大小是多少。 做法 很顯然,面積的期望要轉化爲所有三角形的面積和除以(n3)n\choose3(3n​),考慮計算三角形的面積和。 可以把三角形ABC的面積轉化爲(OA×O

原创 codeforces335F Buy One, Get One Free

題面 題意 你要買n個東西,當你買了一個價格爲x的東西時,可以讓商店免費贈送你一個價格嚴格小於x的東西,則你買下這n個東西至少要花多少錢。 做法 n很大,考慮貪心。 首先根據商品的代價從大到小排序,價格相同的商品一起考慮。 可以把

原创 codeforces506E Mr. Kitayuta's Gift

題面 題意 給你一個長度爲n的字符串,現要你加上m個字符,使其變爲一個迴文串,問有幾種加法。 做法 首先題目可以轉化爲,求有幾個長度爲n+m的字符串,使給出的字符串爲該字符串的子序列。 這樣可以考慮從兩邊開始確定字符,並與給出的字

原创 codeforces1120E The very same Munchhausen

題面 題意 給出一個正整數a,問是否存在一個正整數n,滿足S(a∗n)=S(n)/aS(a*n)=S(n)/aS(a∗n)=S(n)/a且n&lt;=10500000n&lt;=10^{500000}n<=10500000 S(x

原创 codeforces1155F Delivery Oligopoly

題面 題意 給出一張無向圖,問至少保留幾條邊才能使此圖是一個邊雙,並輸出方案. 做法 考慮怎麼構造出一個邊雙,發現可以通過在一個小邊雙上加一條鏈,使它變爲一個新的大邊雙,所以可以記f[u][v][i]f[u][v][i]f[u][

原创 codeforces1163 F Indecisive Taxi Fee

題面 題意 給出一張無向圖,每次詢問修改一條邊的權值,並詢問此時點1到點n的最短路的長度,詢問之間相互獨立. 做法 首先將修改分成以下三種情況: 1.修改了非最短路上的邊,則最短路變爲min⁡(\min(min(原來的最短路長度,

原创 codeforces1149D Abandoning Roads

題面 題意 給出一張無向圖,每條邊的權值只有兩種:a或b(a<b),現在對每個點求,在這張圖的所有最小生成樹中,1號點到它的最短距離是多少. 做法 首先在建最小生成樹時,權值爲a的邊比權值爲b的邊的優先級高,因此可以先將所有邊權爲

原创 codeforces1158D Winding polygonal line

題面 題意 在平面上有n個點,現在給你一個長度爲n-2的由LR構成的序列,要求你求出一個排列,使得按照排列在點之間連線後組成的路徑中沒有相交的線段,而且n-2個拐點的轉彎方向與給出的序列相同. 做法 可以先在這n個點構成的凸包上任

原创 [ZJOI2019]語言

題面 題意 有一棵有n個點的樹,上面有m條鏈,兩個點可以互達當且僅當存在一條兩點都在上面的鏈. 問有幾對點可以互達. 做法 對每個點考慮它對答案的貢獻,可以發現,若點x在鏈a1,b1;a2,b2.....a_1,b_1;a_2,b_2

原创 codeforces1149E Election Promises

題面 題意 給出一張DAG,每個點上有一個數字,雙方輪流進行操作:選擇一個權值不爲0的點,然後減少它的權值,並任意修改這個點所有後繼的權值. 做法 這道題顯然是Nim博弈,但是直接計算整張圖的sg函數顯然不可能,所以可以考慮將點進行分

原创 codeforces1163 FIndecisive Taxi Fee

題面 題意 給出一張無向圖,每次詢問修改一條邊的權值,並詢問此時點1到點n的最短路的長度,詢問之間相互獨立. 做法 首先將修改分成以下三種情況: 1.修改了非最短路上的邊,則最短路變爲min⁡(\min(min(原來的最短路長度,d[

原创 codeforces1149C Tree Generator™

題面 題意 給出一棵樹的括號序列,每次詢問會交換括號序列中的兩個字符,求交換之後樹的直徑. 做法 此題的難點在於如何將樹的直徑轉化爲括號序列上的某個值. 將’)‘看作1,’('看作-1後,發現直徑就是max⁡i−1&lt;=j&lt;

原创 codeforces1161F Zigzag Game

題面 題意 交互題. 給出一張二分圖,左右兩個點之間兩兩有邊,每條邊有一個權值且每條邊的權值都不相同,Alice與Bob在上面玩遊戲.每局遊戲由Alice選擇"增加"或"減少",Bob自動選擇另外一項,然後Alice選擇一個點並將棋子

原创 codeforces1161E Rainbow Coins

題面 題意 交互題 有n個硬幣,每個硬幣有一個顏色,這個顏色是R或G或B,每次詢問可以詢問多對硬幣是否相同(一個硬幣不能同時屬於兩對),最多7次詢問,將硬幣按顏色分成三對. 做法 首先考慮硬幣只有兩種顏色怎麼做,發現可以只用兩次詢問得

原创 codeforces1146H Satanic Panic

題面 題意 平面上有n個點,兩兩之間連線後,求一共能構成多少個五角星. 做法 首先可以將五角星看作是有5個點的凸包,也就是5個極角排序後遞增的向量首尾相接後得到的圖形. 因此可以記dp[x][y][i]dp[x][y][i]dp[x]