Time of Update: 2018-12-03
來源:點擊開啟連結1005,找迴圈節問題,根據鴿巢原理得到最多7*7種情況,分類討論找一下迴圈節就行了,1097,找a^b的最後一位,也是迴圈節數論題。鞏固一下。hdu1005:#include <iostream>#include <cstring>using namespace std;long long tar[100];int main(){int a,b,c;while(cin>>a>>b>>c){int start,end,
Time of Update: 2018-12-03
Time of Update: 2018-12-03
剛從泰山上下來,就一個感覺,只要步履平穩,不停的小憩,甭管是中天門還是十八盤,都弱爆了。。行百裡者半九十的說……日出也就這麼回事……36H沒睡覺~~~比起模板,稍有變化。拉登君有1分,2分,5分若干,求他最小湊不成的錢數。從這個題中,我終於弄明白了,那兩重迴圈是用來求冪的,C1是第一運算式,C2是第二運算式,數組的值代表了他的下標,c2[I+J]=c1[i]就是把冪的值進行加和,演算法毫無問題,輸入格式卡了3邊WA,不應該啊不應該……#include
Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/16/E題意:有n條魚,每天恰好會有一對魚相遇,並且其中的一條會吃掉另一條,給你一個n*n的矩陣,a[i][j]表示i吃掉j的機率,題目保證a[j][i]=1-a[i][j],最後讓你求每條魚存活的機率做法:n比較小,所以可以考慮狀態壓縮,dp[state]表示當前還剩state狀態的魚的機率顯然,每條魚都在時的機率為1,然後可以枚舉兩條還活著的魚進行轉移即可,即枚舉誰吃了誰。水水更健康~~#include<
Time of Update: 2018-12-03
最近變懶了,好久沒寫題解了。。這場codeforces 是在實驗室做的,當晚實驗室竟然有8個人同時做codeforces,創下了我們學校集訓隊熬夜做codeforces的記錄,12級的一兩個同學上升勢頭很猛,贊一個。說一下題目吧:A:水題B :水題C : 比水題稍難D: 閱讀理解題吧,讀懂了就秒掉了E題:寫了一個比較挫的英文problem E: we can also use BIT to solve this problem. first we should read all
Time of Update: 2018-12-03
終於接觸了一丁點字元匹配的東西(其實也只是入門的KMP),話說這個東西的確需要很強的數學思維,其中NEXT數組尤其坑爹,很多ACMER就是栽在了這個數組上,不明覺厲。什麼諸如“失配” “數組移位”和一些S(i-1)...之類的一長串字母的確讓我們十分不爽。更有部落格表示這個確實很難,此中有真意,欲辨已忘言云雲。。演算法導論上的模板是從1開始的,自己還寫了個SString資料類型讓好多人云裡霧裡,今天我們就來試著解釋一下KMP的基本原理吧。
Time of Update: 2018-12-03
來源:點擊開啟連結看路徑記錄的BFS之前,再看一遍優先隊列的用法。優先隊列的定序可以用運算子多載的方式完成,通常意義下,應該用friend bool operator <進行重載。#include <iostream>#include <cstring>#include <queue>#include <string>using namespace std;class hospital{ public: int
Time of Update: 2018-12-03
Problem Descriptiondu熊對數學一直都非常感興趣。最近在學習斐波那契數列的它,向你展示了一個數字串,它稱之為“斐波那契”串:11235813471123581347112358........聰明的你當然一眼就看出了這個串是這麼構造的:1.先寫下兩位在0~9範圍內的數字a, b,構成串ab;2.取串最後的兩位元字相加,將和寫在串的最後面。上面du熊向你展示的串就是取a = b =
Time of Update: 2018-12-03
很多人都看過棧和隊列了吧?那豈不是我沒有說的意義了?那好,我就做這個記錄,等我老了還可以給孫子學棧和隊列,嘿嘿
Time of Update: 2018-12-03
我是div2選手!!!碰上了自己不擅長的數位DP,各種囧啊,前三題水的一逼,我還wa了一次,然後妥妥的掉分了A題:如果有零的話,去掉從左往右數的第一個0即可B題:這類題目以後要多多加強啊,這道題先預先處理出cnt[i],表示有i個lucky dig的數有多少個,這個過程用到了數位類DP的基本方法處理出來後可以用一個dfs暴力求得答案戳這裡看代碼C題: 讓你構造一個序列,序列的最小公倍數就是這個序列中最大的數,而且每個數分別小於另一個序列,求可以構造多少個這樣的序列。
Time of Update: 2018-12-03
別以為我在刷水題。。。。今天做了場srm,500pt想到了是dp但是無從下手,但是看了rng_58的神代碼後頓覺海闊天空啊(盯著看了一個下午),相比於一年前的寫法,真的是不忍直視啊,TC真是個好地方。。。贊!其實就是將普通的鋪磚塊問題用類似於插頭dp逐格遞推的思路來寫。下面的代碼相信大家應該都能看懂。#include <cstdio>#include <cstring>#include <algorithm>long long dp[2][1<<1
Time of Update: 2018-12-03
用選擇法對10個整數按由小到大的順序排序#include<stdio.h>void main(){ void sort(int x[],int n); int *p,i,a[10]; p=a; for(i=0;i<10;i++) scanf("%d",p++); p=a; sort(p,10); for(p=a,i=0;i<10;i++) printf("%d",*(p++));} void sort(int x[],int n){ int i,j,
Time of Update: 2018-12-03
突然發現,做TC的500就像終場前的絕殺, 雖然難,但是還是有可能的,但是1000pt,尼瑪幾乎就是35秒13分啊!500pt : 題意:給你一個字串由I O ? 三種字元構成,現在讓你將? 變成 I 或者 O,使得原序列存在至少一種這樣子的情況:兩個I關於一個O對稱。花了十幾秒時間想了下直接算行不行,發現這是NP啊。。果斷反過來想,YY良久,還是沒結果,,看了題解後陷入了深深的反思,其實只要我嘗試著畫一畫非法的字串長什麼樣子,肯定能獨立搞出來的,還是沒經驗
Time of Update: 2018-12-03
#include<stdio.h>void main(){ void inv(int *x,int n); int i,arr[10],*p=arr; for(i=0;i<10;i++,p++) scanf("%d",p); p=arr; /*要賦值*/ inv(p,10); for(p=arr;p<arr+10;p++) printf("%d",*p);} void inv(int *x,int n) { int
Time of Update: 2018-12-03
250pt: 1234+ 12340+ 123400+ 1234000+ 12340000+ 123400000+ 1234000000------------ 1371110974一個數的magic source是最小的一個正整數x,滿足sigma(x*10^i) [i=0~n] = 這個數。 如上,1234被稱為是1371110974的magic source, 其實就是x*(1111111) = 這個數,求最小的x就是求最大的111
Time of Update: 2018-12-03
題目:點擊開啟連結這個題目來自多校練習5,求整數劃分的種類數,二維DP一定逾時,一維打表試了試(參考poj上吃蛋糕的題,範圍是5000/5S),大於120KB,沒法提交。找了半天,當時明明在wiki找到公式了(傳說中的五邊形數),但是卻沒有轉化好,慘遭wa。連結:點擊開啟連結#include <iostream>#include <cstring>#include <cmath>using namespace std;long long tar[100002]
Time of Update: 2018-12-03
FROM:2012-10-28 ACM/ICPC ASIA JinHua Area,Problem J. 點擊開啟連結這個題看著虎,其實還是很水。。。。但因為閱讀理解,坑了一些時間。難得這麼大的比賽有兩道不用腦子的水題。。。描述上亮點頗多:1、Mom thinks that pants-shoes pair is disharmonious becauseAdiwang is much better than Nike.(囧RZ)2、Next P lines each line will be
Time of Update: 2018-12-03
250pt: 對普通nim遊戲的改編,取石子的時候只能從前往後取,每次取非空的石子,不能取者為輸。 我是從後往前推的,注意當前數字如果>1,不管後面是必勝態還是必敗態,肯定能調節成必勝態,如果=1,就身不由己了。。500pt
Time of Update: 2018-12-03
250pt: 暴力枚舉所有的可能的情況就好了,求面積的時候我是用梯形的面積減去兩個三角形的面積。。550pt:題意:給你一個蜂窩形狀的特殊圖形,有一些格子已經被佔據了,問你將剩下的格子用1*2的磚塊儘可能的鋪滿的總方案數,見。此題想了半天,隱約感覺可以dp,但是無從D起,,,膜拜了下rng_58的超短代碼(大部分人選擇dfs轉移),但是rng_58將圖轉換成網格後巧妙的使用逐格遞推的方法,代碼超短,簡直就是高端洋氣上檔次啊,好想又好寫,這種題我以前都是dfs寫轉移的,要,b半天才能寫出來。。
Time of Update: 2018-12-03
題意:一棵樹,每個點都有一個點權,給你q個詢問a b,求a到根節點的路徑中點權大於等於b且最接近根節點的點編號剛開始想用樹鏈剖分搞,後來聽說用倍增+DP也行做法:如果懂倍增法求祖先的方法的話,那麼這個DP就能很快理解了,詳情見代碼dp[i][j]表示i到i的2^j祖先的路徑上的點權的最大值那麼在找的時候只需要log(n)的複雜度就可以找到最上面的點權大於等於b的啦#include<cstdio>#include<cstring>#include<vector>