原创 sgu296:Sasha vs. Kate(貪心)

題目大意:        給定一個正整數 n(1≤n≤101000)  和一個非負整數 k  ,要求你刪去 n  中的 k  個數字,使得剩下的數最大,保證 k  小於 n  的位數,且 n  沒有前導零。 分析:      

原创 sgu277:Heroes(動態凸包)

題目大意:        動態凸包... 分析:        參見http://www.cnblogs.com/yejinru/p/3156048.html AC code: #include <cstdio> #inclu

原创 sgu287:Amusing Qc Machine(DP)

題目大意:        有一個遊戲是在一個區間[1,n] 中找到一個整數 x 。你在每一輪可以說出一個數 y ,機器會告訴你 y  與 x  的大小關係。爲了提高遊戲難度,機器會延遲 k  輪告訴你這一輪的結果。當機器說結果相

原创 sgu281:Championship(map)

題目大意:        給出兩個排名,按照以下要求求出最終排名。如果兩個排名的前m(1≤m≤n) 個人的集合相同,那麼最終排名的前m 個人也是這m 個人,不能通過這個比較順序的按照字典序排序。 分析:        爲啥我覺

原创 sgu291:Evolution(暴力)

暴力題就自己看題意吧,都不想打了 TAT  。 AC code: #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> #include

原创 Project Euler 014 Longest Collatz sequence

題意:定義一種變換,當n 是奇數的時候變成3n+1 ,當n 是偶數的時候變成n/2 ,有個猜想是所有數都會變回0 ,問1∼106 中變回1 步數最長的那個數。 分析:目前只想到記憶化搜索,順便加點小優化。 #include <bits/

原创 Project Euler 012 Highly divisible triangular number

題意:求第一個滿足約數個數>500 個的三角形數。 分析:考慮第n 個三角形數是n(n+1)2 ,而n 和n+1 互質,因此有 d(n(n+1)2)=⎧⎩⎨⎪⎪⎪⎪d(n2)⋅d(n+1),n爲偶數d(n)⋅d(n+12),n爲偶數

原创 Delay List

sgu266,268,286

原创 Project Euler 009 Special Pythagorean triplet

題意:求一組勾股數(a,b,c) ,滿足a+b+c=1000 。 分析:暴力枚舉a,b 是O(10002) 的。 考慮公式a=m2−n2,b=2mn,c=m2+n2(m>n) 已經可以生成所有的基本勾股數了,我們只需要在所有基本勾股數

原创 Project Euler 013 Large sum

題意:求10 個50 位數的和的前10 位。 分析:裸的高精度,或者double啊啥的應該也是能過的吧。 #include <bits/stdc++.h> #define ll long long #define pii std::

原创 Project Euler 006 Sum square difference

題意:∑100i=1i2−(∑100i=1i)2 分析:依舊考慮兩種做法。 1. 暴力求出兩個值。 2. 前一個等於n(n+1)(2n+1)6 ,後一個等於(n(n+1)2)2 。 #include <bits/stdc++.h>

原创 sgu293:Game with Q an C(構造)

題目大意:        有一個長度爲 2n−1  的 01  序列,題目會將元素一個一個告訴你,你在每一時刻可以交換兩個不同位置的元素。求出一種方案,使得在每個奇數時刻序列都是迴文序列。 分析:        又見構造題一道。( 構

原创 Project Euler 011 Largest product in a grid

題意:給定一個20×20 的矩陣,求最大的四個連續的數的乘積,連續意思是同一行連續或同一列連續或者斜線連續。 分析:暴力枚舉四個數的起點,暴力枚舉方向,O(202⋅4⋅4) ,可以用之前008 的方法做到O(202⋅4) 。 #incl

原创 Project Euler 010 Summation of primes

題意:求2×106 以內的質數的和。 分析:歐拉篩法即可。 #include <bits/stdc++.h> #define ll long long #define pii std::pair<int,int> #define m

原创 Project Euler 004 Largest palindrome product

題意:求由兩個三位數乘起來構成的數中的最大的迴文數。 分析:依舊考慮兩種做法。 1. 直接暴力枚舉兩個數在判斷,O(n2logn) 。 2. 枚舉迴文串的前一半,再判斷是否能由兩個三位數乘起來,O(Σd) ,d 表示枚舉出來的迴文