原创 codeforces round#404(div.2) A. Anton and Polyhedrons

題意:有若干立體圖形,每個有固定的邊數,計算輸入圖形的總邊數。 水題,暴力求解即可。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm>

原创 Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A. Vicious Keyboard

改一次最多增加一個,遍歷一遍即可 #include<bits/stdc++.h> using namespace std; char s[105]; int cnt=0,flag=0; int main() { cin>>s;

原创 codeforces round#408(div.2) B. Find The Bone

題意:經典的遊戲(忘了叫什麼了。。。),大概是像是某個杯子放了一個球,然後各種換,最後猜在那個裏面,只是這道題的話在某些杯子下有一些洞,有球的杯子到了這裏球會掉下去不出來。 大概就是按着操作來就可以ac了,要注意如果第一個杯子下有洞剛開

原创 模擬退火算法解決01揹包問題(matlab實現)

function [maxvalue,result]=SA_bag(value,weight,maxweight)%maxvalue爲最大價值,result爲最終的物體選取向量,value爲價值向量,weight爲重量向量,maxweig

原创 Educational Codeforces Round 19 C. Minimal string

輸入一個字符串,從左開始進行操作,每次可以把一個字母輸出來,也可以把它放進一個棧裏,可以隨時取出輸出,最終要求輸出一個所有情況中的字典序最小的一種。 首先先記錄一下每個字母的個數,方便動態的情況下找最小值,然後就開始遍歷了,每次遍歷找一下

原创 aoj-2249 Road Construction 單源最短路dijkstra+堆優化(模板)

先用dijkstra求出capital到其他的各個點的最短距離,然後最後遍歷一遍各個邊,把之前用到的最短距離的邊的最小消耗加在一起即可。(詳見代碼) #include<iostream> #include<cstdio> #includ

原创 Project Euler 622

題目鏈接:點擊打開鏈接題意:題目定義完美洗牌方式,s[i]表示i張牌時需要洗多少次回到最初情況,求s[i]=60的所有i的總和。易知,我們每次洗牌可以轉化爲公式(2*i-1)(mod n-1)(n爲牌數),也就是s[i]等於 2 mod(

原创 2017多校訓練第一場

1001 這是一道簽到題求出滿足10^k<2^m<10^(k+1)的k的值,直接取對數即可,變換一下就是結果。 1002 這是道貪心算法的題,需要我們給每個字母賦一個貢獻值,使得所有數的和最大。 先把每個字母都看做1,然後按每個字母對結果

原创 Educational Codeforces Round 20 A - Maximal Binary Matrix

就是一個n*n方陣,有k個1放在裏面,然後要求對角線對稱且字典序最大,如果k>n*n就輸出-1,否則就看半邊,遍歷一遍,k足夠放兩個1的話,就放一個1,然後每次換行的時候要判斷還剩幾個1沒放,剩一個就放在對角線,如果還剩兩個的話就在對角線

原创 Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) D. Volatile Kite

可單獨拿一個點來看,如果要使凸包退化,即使得其與其的相鄰兩點變成至少三點共線,這種情況的移動最小距離是以其相鄰兩點爲底,該點爲頂點的三角形的高的一半,所以二分答案,遍歷每個點求三角形的高的一半和該值作對比即可 #include<bits/

原创 POJ 1733 Parity game hash離散化+帶權並查集

由於數據範圍過大,所以需要進行hash離散處理,然後就是建立並查集,ranks[x]表示節點x到根節點奇偶性,然後每次更新一次權值就好了,輸出第一次錯的位置,直接break就好了。 #include<iostream> #include

原创 codeforces Educational Codeforces Round 21 C. Tea Party

先把所有的杯子按尺寸大小排序,然後把每個杯子都倒上一半,若是不夠就輸出-1,若是沒倒完就從尺寸大的開始都倒滿,一直到把所有茶都倒完,因爲排序的時候後打亂順序,所以用結構體來記錄杯子序號即可。 #include<iostream> #inc

原创 codeforces Educational Codeforces Round 21 D. Array Division

分兩種情況,一個是後面的數放到前面,另一種是前面的數放到後面(其實還有一種是無變化,可以放到其中一種來看) 分別記錄前綴和和後綴和,用兩個map記錄某個數出現的最早座標和最晚座標,首先如果總和是奇數就輸出NO,否則就進行從前向後遍歷,若出

原创 URAL-1979 Resources Distribution

一個正方體每個面分爲n*n個小方塊,每個小方塊填上1~6*n*n的數字,要求所有方塊數字不一樣且繞一圈數字和相同。 容易知道所有的繞圈方式一共有3*n種,而這些繞圈方式每個方塊一共會被遍歷兩次,所以可以計算                

原创 Educational Codeforces Round 20 B - Distances to Zero

沒什麼好說的,直接暴力兩遍即可 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include<algorithm> #include<cstd