Codeforces Round #493 (Div. 2):D. Roman Digits
題意(轉換後):給你一個n,問在滿足x+y+a+b=n的情況下,x+5y+10a+50b有多少種不同的結果
結論:當n≤11的時候直接暴力,n≥12滿足F(i)=F(i-1)+49
思路:假設有這樣道題:你有1元,5元,10元,50元紙幣若干張,問你能組成多少種不同面值,你會發現只要能用9張紙幣,那麼就可以組成1~50中的任意一個面額(需要最多的是49=10+10+10+10+5+1+1+1+1剛好9張)
#include<stdio.h> #define LL long long LL ans[15] = {0,4,10,20,35,56,83,116,155,198,244}; int main(void) { int n; scanf("%d", &n); if(n<=10) printf("%I64d\n", ans[n]); else printf("%lld\n", ans[10]+(LL)(n-10)*49-1); return 0; }
相關推薦
Codeforces Round #493 (Div. 2):D. Roman Digits
題意(轉換後):給你一個n,問在滿足x+y+a+b=n的情況下,x+5y+10a+50b有多少種不同的結果結論:當n≤11的時候直接暴力,n≥12滿足F(i)=F(i-1)+49思路:假設有這樣道題:你有1元,5元,10元,50元紙幣若干張,問你能組成多少種不同面值,你會發現
Codeforces Round #459 (Div. 2):D. MADMAX(記憶化搜尋+博弈論)
D. MADMAX time limit per test1 second memory limit per test256 megabytes Problem Description As we all know, Max is the best
Codeforces Round #493 (Div. 2) D. Roman Digits
Let's introduce a number system which is based on a roman digits. There are digits I, V, X, L which correspond to the numbers 11, 55, 1010and 5050 respecti
Codeforces Round #493 (Div. 2) (A B C D)
A. Balloons題目大意:讓你把所有的氣球分成兩份,使得兩份的數量不同,隨便分。解題思路:用一個結構體存數量和序號,在根據數量排個序,對於n<=2進行特判下,對於n>2的情況直接輸出1和第一個數的序號即可。AC程式碼:struct node { in
Codeforces Round #435 (Div. 2) c+d
pan define ons eve vector class bits ace mod C:給n和k要求,找出n個不同的數,使得亦或起來等於k 可以先預處理從1到1e5,找亦或起來等於(11111111111111111)(二進制)的所有對數,然後四個一起亦或就是0了,
Codeforces Round #436 (Div. 2), problem: (D) Make a Permutation!
scanf problem codeforce ++ round class span com make #include <cstdio> #include <cstring> #include <vector> using names
Codeforces Round #451 Div. 2 C D E
eve == ont span har else const 實用 iterator C。Phone Numbers 之前沒有做過字典樹……感覺這個題字典樹也能做……就拿來練一練字典樹……板子好多地方寫的都不夠好,還需要繼續改…… emmm這個……卡了好久啊……不過好在還
Codeforces Round #252 (Div. 2)-C,D
++ con cli 排列 tor 節點 -c fin ios C題就是一個簡單的模擬。首先給每一個人兩個。然後把剩下的都給一個人就好了。 給的時候蛇形給。
【Codeforces Round #493 (Div. 2) B】Cutting
ifd main color ble -a 地方 name 次數 include 【鏈接】 我是鏈接,點我呀:) 【題意】 在這裏輸入題意 【題解】 顯然只有在前i個位置奇數偶數出現次數都相同的地方才能切。 (且不管前面怎麽切,這裏都能切的。 那麽就相當於有
Codeforces Round #517 (Div. 2), problem (D) Minimum path 貪心
本題運用貪心演算法,需要按照字典序輸出路徑,路徑包含2n-1個字元,只需要按正序求出當前情況下的最優解即可。需要注意的是當最優解相同的時候需要保留剩餘更改次數更大的那個路徑。 在求解本題的過程中由於構思的偏差出現了Runtime error、Memory limit exceeded
Codeforces Round #510 (Div. 2), problem (D) Petya and Array 分治
本題如果採用兩層for迴圈遍歷每個l和r,時間複雜度為O(n2),將會超時。所以可以採用分治的演算法,將陣列二分遞迴,完成一個分支之後將此次l和r之間的數進行排序,目的是能以O(n)的時間複雜度統計出此分支符合要求的個數。 ac程式碼: #include <bits/std
Codeforces Round #493 (Div. 2) B. Cutting 字首和優化_動歸水題
不解釋,題目過水 Code: #include<cstdio> #include<cmath> #include<algorithm> using namespace std; const int maxn = 1000 +
Codeforces Round #493 (Div. 2) A. Balloons 貪心水題
由於是輸出任意一組解,可以將價值從小到大進行排序,第一個人只選第一個,第二個人選其餘的。再比較一下第一個人選的元素和第二個人所選元素和是否相等即可。由於已將所有元素價值從小到大排過序,這樣可以保證在有解的情況下一定可以構造出可行解。 Code: #include
CF-Codeforces Round #483 (Div. 2) A~D
ACM模版 A-Game 描述 題解 兩個人依次取數,AA 每次取大的,BB 每次取小的,直到剩餘一個數,輸出這一個,排序即可。 程式碼 #include <i
Codeforces Round #532 (Div. 2)(A. Roman and Browser)
A. Roman and Browser time limit per test1 second memory limit per test256 megabytes inputstandard input
單調棧經典模板(Codeforces Round #305 (Div. 2), problem: (D) Mike and Feet)
#include <bits/stdc++.h> using namespace std; const int maxn = 200000 + 10; stack<int> stk; int a[maxn] , dpl[maxn] , dpr[max
Cutting Codeforces Round #493 (Div. 2)
string bre cut fine using ons sort its vector #include<cstdio> #include<cstring> #include<algorithm> #include<i
Codeforces Round #365 (Div. 2) Problem D.Mishka and Interesting sum 解題報告
題目連結:Here! 題目大意:給你n個數,然後m次查詢,每一次查詢輸出所有在給定區間內出現偶數次數的數的異或值,如果只有一個出現偶數次數的數,則直接輸出該數,如果沒有出現偶數次數的數,則輸出0。 解題思路:看到區間查詢,第一反應是線段樹,但是用線段樹來統計區間內出現次數為
Codeforces Round #406 (Div. 2):C. Berzerk(記憶化搜尋解決博弈問題)
Each one of them has a set of numbers between 1 and n - 1 (inclusive). Rick's set is s1 with k1 elements and Morty's is s2 with k2 elements. One of th
Codeforces Round #493 (Div. 2) (1800分紀念)
A.Balloons 題意:給出長度為n的陣列,問是否可以分成兩組和不一樣的陣列,n<=10 題解:由於n很小,所以列舉子集就好了 #include <bits/stdc++.h> #define pb push_back #define