原创 [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