原创 Prime Path

The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all hav

原创 Hot Bath

這道題呢其實是很簡單的,你先從全部水開始試,熱了就減1個單位的熱水,並比較這個方案是不是比原方案好,若要好些則認爲這種情況暫時最好,冷了就減一個單位的冷水,知道有有一個小於0爲止。#include<iostream> using name

原创 POJ-2251 Dungeon Master

這道題呢其實就是一個迷宮問題,只不過從二維變成了三維而已首先呢這道題是用寬搜做的,可以從其數據範圍看出我本人一開始用深搜做,然後一直超時,看了數據範圍以後才用的寬搜(其實最短路時是最好用寬搜的)#include<iostream> #

原创 Fire Game

這道題說白了,其實就是最短路徑問題,果斷用寬搜,但是我們這裏要注意的是,這道題是兩個起點的寬搜,兩個同時搜,而不是分開搜,我本人就是因爲這個錯誤而做了很久的#include<iostream> #include<cstring> #inc

原创 Fire! UVA-11624

這道題沒什麼好說的,一個最短路徑的題,用寬搜。但是要注意的是,這道題是兩個寬搜,先算火(有多個火!)到每個點的距離,然後人就必須在火到那個點之前到達那個點,不然人(只有一個人)就要死了#include<iostream> #include

原创 FOJ-2257 Saya的小熊餅乾

這道題呢其實說難不難說簡單也不簡單(雖然說我做了很久),重要的就是它的思想---正着做不行就反着做,先求出每個點不被抽到的概率,然後再用1-概率,並全部加起來。#include<iostream> #include<cmath> #inc

原创 Canvas Frames

這道題是一道簡單的不能再簡單的題(雖然說我一開始看錯題了),是一道數學題,代碼簡單,思想簡單。先算出一共有多少對相同的,然後因爲有兩對才能配成一對,所以把對數和加起來後還要除以2纔是最後的答案#include<iostream> usin

原创 Find the Multiple

Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains

原创 Find a Way

這道題,是一個典型最短路徑問題,用寬搜,但不要理解爲雙起點,而要理解爲雙寬搜。這道題有多個終點,我們不要一個一個點地枚舉,這樣做會超時(我試過的,而且還卡了很久不知道爲什麼錯.而是算沒個人到每個KFC的距離,再用兩人的距離和比較,取最小的

原创 線段樹lazy操作

本人自己出的一道題: 已知有N個數,其中第i個數的只是a[i],對這i個數進行q個操作,每次先輸入op,代表操作,若op==0,則輸入x,y,求a[x]+......+a[y]的值。若op==1則 輸入x,y,z,將a[x]......a

原创 UVA 11374 Air Express

這道題其實就是這個意思:給你m條路,可以隨便走;再給你K條路,這K條路一共只能走一次(可以不走),問從A到B最快要多久.        這道題,其實是道水題,可以參考劉汝佳的藍書P330。我們從A爲起點,做一次單源最短路徑,把點X離A的距

原创 POJ-3278 Catch that cow

這道題是道典型的寬搜問題,我們可以從它的數據量就可以看出深搜要超時,並且最短路要用寬搜。#include<iostream> #include<queue> using namespace std; queue<int>sm;//寬

原创 樹狀數組第一題: POJ 2352 Stars

Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordi

原创 NOIP2016 憤怒的小鳥

這道題看到數據範圍,我們就知道:小於等於18,一定使用狀態壓縮,即O(2^n*一個東西),在算一下,我們發現,像NOIP這種考試,一定會考卡常數的題,所以瞬間得出這道題的算法是O(2^n*n^2*cases). 顯然這道題我們可以當做直線

原创 UVA -11419 SAM I AM 最小邊覆蓋輸出路徑

首先,我們要清楚,這道題它是最小邊覆蓋的題。但是與其他不同的是,這道題要輸出路徑,所以說我們又要學習如何輸出二分圖路徑:首先,先跑一次匈牙利,然後再從殘餘網絡從X集出發,沿着增廣路線依次走,標記途徑節點,最後取X未標記的和Y已標記的輸出答