原创 JAVA實現植物大戰殭屍連連看

說明:本篇博客主要講述練練看遊戲的設計與實現。前半部分爲分析與類和屬性的說明,後半部分爲程序的實現與程序代碼。第一次寫小遊戲,仍存在許多問題,也借鑑了CSDN前輩的代碼想法,如有不妥,還望多批評指正。 (一)需求分析 已經實現的部

原创 Codeforces Rotation Matching(思維)

解題思路: 由於第二個數組所有數字是同時向一個方向移動的,求移動後最大匹配項的數目,即可以轉化爲求原始數組中處在同一偏移量的數字個數的最大值,偏移量就等於b數組中某個數組與a數組中相同數字之間的絕對距離 代碼: #include

原创 Codeforces Game On Leaves(樹)

題目大意: 給定一棵樹,有兩個人輪流拆除樹上的葉子節點,摘除編號爲x的節點的人獲勝,問最後誰會獲勝 解題思路: 以x爲根節點,求x的所有孩子節點的數量,如果數量爲奇數,則Ayush獲勝,否則Ashish獲勝,這裏需要注意一種特殊

原创 Codeforces Phoenix and Distribution(字符串、排序、思維)

題目大意: 給你一個長爲n的字符串,從中選擇字符組成k個不爲空的字符串,使得max(s1,s2,…,sk)最小,輸出max(s1,s2,…,sk) 解題思路: 這是一道思維題,首先將原字符串進行排序,將前k個字符作爲字符串的第一

原创 Codeforces Hamburgers(二分查找)

題目大意: 做一個漢堡需要b,s,c三種材料,一開始每種材料有nb,ns,nc個,且它們的單件價格分別爲pb,ps,pc,有r塊錢,根據配方,問最多能做多少個漢堡 解題思路: 考慮用二分查找,注意邊界條件,最後所用的錢數可以不是

原创 Codeforces Yet Another Counting Problem(數學)

題意: [l,r]範圍內多少個數滿足 (x % b) % a != (x % a) % b。 思路: 打表找規律 小心數據範圍 代碼: #include <bits/stdc++.h> #define ll long long

原创 Codeforces Primes and Multiplication(數論)

解題思路: 看懂g函數就好搞了 就是再問你 45 裏面3作爲質因子 出現次數是多少 我們考慮f 無非就是分解質因數 最多20個 然後 1 到 n 這個質因數出現了幾次 套階乘的分解質因子就好 然後 注意 階乘質因子就不要乘了 連

原创 Codeforces Pride(數論)

題目大意: 給你n個數,讓你進行操作,操作是對兩個數取他們的gcd,這個gcd可以將這兩個數其中一個替換掉,問將所有的數字變爲1最少需要多少次操作 解題思路: 我們應該找能gcd得出1的最小區間,得出他們的距離,這個距離就是將這

原创 Game stratege(思維)

解題思路: 其實這道題目開始就想出了應該是三重循環,也就是每個人選一個數,使得這三個數儘量符合三個人的要求 即每個人在自己可選擇的範圍內,選擇最符合自己要求的數,三個人的選擇是互不影響的 代碼: #include <bits/s

原创 Codeforces Vova and Trophies(前綴、後綴、字符串)

解題思路: 記錄a[i]爲從i開始往前最大的連續G的數量,記錄b[i]爲從i開始往後最大的連續G的數量,枚舉每個交換位置i,arr[i]爲S,取最大的a[i-1]+b[i+1]+1即爲交換後最大可能連續G的長度,注意長度不能超過

原创 Codeforces Maze(圖、DFS)

題目大意: 給定一個圖,其中有若干個障礙和空地,空地之間互相連通,現在讓你在空地中加K個障礙記爲X,要求每一塊空地之間仍然聯通 解題思路: 思路1: 逆向思維,先將所有空地變爲X,記錄總共的X的個數cnt,從中選取cnt-k個變

原创 Codeforces Hard problem(dp、字符串)

題目大意: 給定n個子字符串,對其中若干個字符串進行反轉,每次反轉產生代價Ci,最後使得字符串按照字典序排列,求最小代價和,不需要反轉時輸出-1 解題思路: 首先使字符串的兩個狀態,正序和反序,相當於從每兩個字符串中選出一個,如

原创 Codeforces Colorful Bricks(組合數)

題目大意: 給你n個塊,m種顏色,讓你塗顏色,要求最後相鄰磚塊顏色不同的情況總數爲k,問你有多少種圖法 解題思路: n個磚塊間總共有n-1個間隔,從n-1個間隔中選出k個間隔,這k個間隔相鄰的兩端磚塊顏色不同,其他間隔兩端磚塊顏

原创 Codeforces Equalizing by Division (hard version)

題目大意: 給你一個數組,給定k,定義一個操作爲arr[i]/2,問你至少操作多少次,使數組中存在k個相等的數 解題思路: 首先我們要排一下序,從小到大排,然後對每個,枚舉每個元素,枚舉的同時除二,同時用一個數組cnt記錄在除二

原创 Codeforces Circle of Monsters(思維)

題意:有一個n個怪物,環形排列,每個怪物有a[i]滴血,每次射擊可以-1滴血,死後爆炸產生b[i]傷害,能傷害到下一個怪物,若炸死了下一個,也是同樣爆炸,問最小射擊次數使得全部怪物GG 解題思路: 從反面思考,最終的結果是全部怪