原创 [noip2011tg] 鋪地毯

題目鏈接 題解:悶聲大模擬…… #include <iostream> #include <cstdio> using namespace std; int n,x,y; const int M=10005; int a[M],b

原创 [noip2009tg] 潛伏者

題目鏈接 題解:鬼畜模擬 #include <iostream> #include <cstring> #include <cstdio> using namespace std; int flag; char s[100],s1

原创 [noip2013tg] 積木大賽

題目鏈接 題解:假設有一個已經處理好的序列,要新加入一個數,如果新加入的數小於序列末尾的數,對序列末尾數的每一次操作都可以附帶它,如果大於,則需要新增操作數,初始時序列中爲0 #include <iostream> #includ

原创 [noip2010tg] 機器翻譯

題目鏈接 題解:悶聲摸大擬 #include <iostream> #include <cstdio> #include <queue> using namespace std; int n,m,tot,x; queue <int

原创 [noip2005pj] 校門外的樹

題目鏈接 題解:非常奇怪的用並查集維護區間的做法 #include <iostream> #include <cstdio> using namespace std; int r[100000],f[100000]; int fi

原创 [noip2013tg] 火柴排隊

題目鏈接 題解:看到題目,很容易想到,當兩序列中最大對最大,次大對次大……時,結果最小。結合題目給出的要求,很容易想到,如果把序列A用冒泡排序變成序列B,交換的次數就是答案。用O(n^2)模擬一下,就能拿60了,再結合一下冒泡排序

原创 [noip2014tg] 生活大爆炸版石頭剪刀布

題目鏈接 題解:手動打表…… #include <iostream> #include <cstdio> using namespace std; int x,y; int n,na,nb; int s1,s2; int a[10

原创 [noip2015tg] 神奇的幻方

題目鏈接 題解:悶聲大模擬 #include <iostream> #include <cstdio> using namespace std; int n,h,l; int map[50][50]; void work() {

原创 [codevs4906] 刪數問題

題目鏈接 題解:經典貪心,不過也可以用dp #include<stdio.h> #include<string.h> void find() { char N[200]; int s; int i=0,j;

原创 [模板] 圖

最小生成樹 kruskal void kruskal() { for(int i=1;i<=n;i++) f[i]=i; for(int i=1;i<=m;i++) { x=find(e[i

原创 [noip2014tg] 飛揚的小鳥

題解:看到題目,二話不說就寫了個爆搜,拿了50,後來優化了一下,改成了記憶化,O(nm^2),慘遭卡常數(寫得太醜了),只有60 dp等以後在寫吧,我太弱了QAQ 爆搜 #include <iostream> #include

原创 [noip2007tg] 統計數字

題目鏈接 題解:排序…… #include <iostream> #include <algorithm> #include <cstdio> using namespace std; long long a[200005]; i

原创 [noip2008tg] 笨小猴

題目鏈接 題解:模擬,模擬 #include <iostream> #include <cmath> #include <algorithm> #include <cstring> using namespace std; con

原创 [Usaco14Mar] Sabotage

題目鏈接 題解:看到題目,馬上YY了一個貪心:序列每個數減去初始序列的平均值然後求最大連續字段和。但是!這樣的盲目貪心是錯誤的 對於這樣一組數據:6 20 30 40 60 89 1來說,如果按照上述貪心法則,結果得到 20 30

原创 [noip2013tg] 轉圈遊戲

題目鏈接 題解:手動模擬一下就行 #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #define ll long long