Time of Update: 2018-08-20
題意 求 ∑ni=1ϕ(i) \sum_{i=1}^n\phi(i) n≤1010 n \le 10^{10} 題解 模板題,取1與 ϕ \phi卷, S(n)=(1+n)∗n2−∑i=2nS(⌊ni⌋) S(n)=\frac{(1+n)*n}{2}-\sum_{i=2}^nS(\lfloor\frac{n}{i}\rfloor)
Time of Update: 2018-08-20
大水題。顯然限制就是同行同列個數不能超過2。 fi,j,k f_{i,j,k} 表示前 i i 行,放了 0 0個的列數是 j j,放了 1 1 個的列數是 k k 。就好了… #include<cstdio>#include<algorithm>using namespace
Time of Update: 2018-08-20
搜尋題。直接暴力枚舉每個質數取幾個。我們要判斷一些數乘除最後是否等於1,這個不太好直接做。所以就給每個質數雜湊一個值,把乘除變成加減,就好搞了。 需要 meet in middle ,開個hashmap記一下。 還是不夠快。注意到後面有較多的指數只有1的質數。他只會對分子或分母貢獻2,可以組合數算。 這樣 n=100 n=100 就可以 5s+ 左右跑出來了。
Time of Update: 2018-08-20
題意 n個騎士,每個騎士自己的戰鬥力這個屬性。而且每個騎士都有且僅有一個自己最厭惡的騎士(當然不是他自己),他是絕對不會與自己最厭惡的人一同出戰。你需要選一些騎士組成一支戰鬥力之和最大的軍隊。 題解 把每個騎士與他最厭惡的騎士連邊,限制轉化為有邊直接相連的兩個點不能都選。注意到是無向圖,且有n個點n條邊,所以是連成的圖的樣子就是環+外向樹。刷個DP即可。 P.S.注意n個點不一定連通。 #include<cstdio>#include<cstring>#
Time of Update: 2018-08-20
簡單的樹形 DP DP 。記 fi,0/1 f_{i,0/1} 表示考慮以 i i 為根的子樹,所在的塊有一個黑或沒有黑結點的方案數。 轉移很顯然。 #include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=100005,maxe=100005,MOD=1
Time of Update: 2018-08-20
一直對齊次座標這個概念的理解不夠徹底,只見大部分的書中說道“齊次座標在仿射變換中非常的方便”,然後就沒有了後文,今天在一個叫做“三百年 重生”的部落格上看到一篇關於透視投影變換的探討的文章,其中有對齊次座標有非常精闢的說明,特別是針對這樣一句話進行了有力的證明:“齊次座標表示是電腦圖形學的重要手段之一,它既能夠用來明確區分向量和點,同時也更易用於進行仿射(線性)幾何變換。”—— F.S. Hill, JR。
Time of Update: 2018-08-20
好題。首先不難想到二分答案。驗證就是寫出狀態 n2 n^2 的 DP DP,類似 二取一維數組 的搞法: fi,j f_{i,j} 表示前 i i 個點已走過,兩個人分別在 i i 和 j, (i>j) j,\ (i>j) 。 fi,j→fi+1,j(ai+1−aj≤mid),
Time of Update: 2018-08-20
題意 在xoy直角座標平面上有n條直線L1,L2,…Ln,若在(0,+oo)處往下看,能見到Li的某個子線段(只有點不算),則稱Li為可見的,否則Li為被覆蓋的. 給出n條直線,表示成y=Ax+B的形式(|A|,|B|<=500000),且n條直線兩兩不重合.求出所有可見的直線. 題解 好像是半平面交的簡化版,只有一側有邊界。 這題不知道半平面交也完全沒關係,自己亂搞也可以。下面講一下我的思路:
Time of Update: 2018-08-20
對於給定的一個字串,統計其中數字字元出現的次數。 Input 輸入資料有多行,第一行是一個整數n,表示測試執行個體的個數,後面跟著n行,每行包括一個由字母和數字組成的字串。 Output 對於每個測試執行個體,輸出該串中數值的個數,每個輸出佔一行。 Sample Input
Time of Update: 2018-08-20
實際上就是個莫隊的思想啊….. 哈夫曼距離就可以看作莫隊時移動代價,然後就那樣分塊地排個序就好了。 過不了就稍微調一調塊大小多試幾次… #include<cstdio>#include<algorithm>using namespace std;const int maxn=1000005;int n,m,blk,_max;struct data{ int x,y,id; bool operator < (const data
Time of Update: 2018-08-20
簡單的容斥 ∑i=0m(−1)i(m−i)n(mi) \sum_{i=0}^m (-1)^i(m-i)^n{m \choose i} #include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000005,MOD=1e9+7;typedef long long LL;int
Time of Update: 2018-08-20
試題編號: 201312-3 試題名稱: 最大的矩形 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述 在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i(1 ≤ i ≤
Time of Update: 2018-08-20
其實很簡單的題,然而之前題意讀錯了…… 我們怎麼判斷是否存在一個矩形,覆蓋了一個點而沒覆蓋另一個點呢。實際上只要做個矩形覆蓋就行了,若兩個點上覆蓋的矩形集合不同,則說明兩點不可達。 我們可以對每個矩形,對應一個雜湊值,進行矩形加。然後詢問時判斷兩點的值是否相同即可。 矩形加,我們可以差分,然後二維樹狀數組實現。 #include<cstdio>#include<cstdlib>#include<algorithm>using namespace
Time of Update: 2018-08-20
最近研究了一陣子中文情感分析的一些paper,高度興趣,於是最終決定寫一個中文情感分析的工具。作為開源思想的忠實粉絲,我也獻醜一次,把自己拙劣的代碼呈現給大家,歡迎大家拍板磚。希望這個工具能給大家帶來一些實際的用處。 目前,這個工具只實現了使用一種基本演算法來預測文章的情感。經過本人測試,基本滿足對中文句子的情感傾向分析,而且準確度可以信賴。大家如果有這個需求,想簡單分析一下某個漢語評論集合的情感傾向,可以直接把這個工具拿去使用。 下面是這個工具的效能和準確度量化指標: 效能:
Time of Update: 2018-08-20
分治學傻的我只會無腦分治…… 題意就是求滿足 sum≡max sum \equiv max 的區間。反正就是按套路搞。 注意計數的數組不能每次 clear clear ,要開時間戳記。 #include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=300005,maxk=1000005;
Time of Update: 2018-08-20
Given a binary tree, find the maximum path sum from root. The path may end at any node in the tree and contain at least one node in it. 給一棵二叉樹,找出從根節點出發的路徑中,和最大的一條。 這條路徑可以在任何二叉樹中的節點結束,但是必須包含至少一個點(也就是根了)。
Time of Update: 2018-08-20
首先考慮 n=9999...999 n=9999...999 這種情況,沒法怎麼節省,每位都有 10 10 種可能,只能 9876543210 9876543210 重複位元次,總長度為 10∗len 10*len 。 所以對於一個一般的長度為 len len 的 n n,至少需要
Time of Update: 2018-08-20
題意 X是T大的一名老師,每年他都要教授許多學生基礎的C++知識。在T大,每個學生在每學期的開學前都需要選課,每次選課一共分為三個階段:預選,正選,補退選;其中”補退選”階段最忙碌。在補退選階段,學生即可以選課,也可以退課。 對於X老師來說,在補退選階段可能發生以下兩種事件: 1:一個姓名為S的學生選了他的課(姓名S將出現在X的已選課學生名單中) 2:一個姓名為S的學生退了他的課(姓名S將從X的已選課學生名單中移除)
Time of Update: 2018-08-20
1000ms 32768K 江湖是什麼,對於在象棋界廝殺的大釘來說,江湖就是一個矩陣,他的目標,就是在江湖之中騎著馬,從他的位置出發,走到終點。 當然,大釘的馬也遵從中國象棋中的“馬走日”的規則,而且在矩陣中,也會有一些障礙物,馬不能跳到障礙物上;如果大釘的馬面前有障礙物,即被“別馬腿”,那麼他將不能跳向有障礙物的左前和右前這兩個方向。 請問最少需要多少步,大釘才能騎著馬跳到終點。 輸入格式: 有多組測試範例。
Time of Update: 2018-08-20
題意 解線性規劃,以標準型給出。n個變數, m個約束。 n,m≤20 n,m\le 20 題解 單純形模板題 #include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int maxn=55;const double eps=1e-8;int n,m,Type;double