題目大意:陶陶有s點體力值,每個蘋果消耗體力值,問s體力值最多能摘多少蘋果。
解題思路:首先過濾掉摘不到的蘋果。其次從小到大排序,貪心思想:優先選擇消耗體力值小的蘋果。
實現**如下:
#include using namespace std;
const int maxn = 5050;
int n, m, s, a, b, x[maxn], y[maxn], ans;
int main()
sort(y, y+m);
for (int i = 0; i < m; i ++)
else break;
}cout << ans << endl;
return 0;
}
題目大意:求出所有桌布為a:b:c的三位數。
解題思路:遍歷第乙個數,判斷後兩個數是否都是三位數且剛好這三個數從1到9。
實現**如下:
#include using namespace std;
int a, b, c;
bool t[10];
bool check(int a)
for (int i = 1; i < 10; i ++) if (!t[i]) return false;
return true;
}int main()
}if (!flag) puts("no!!!");
return 0;
}
題目大意:給你乙個數,找三個素數使得它們的和是這個數。
解題思路:資料量偏大,所以採用素數篩法,然後再列舉。
實現**如下:
#include using namespace std;
const int maxn = 20020;
bool pp[maxn];
int n, a, p[maxn];
void init()
}int main()
}return 0;
}
解題思路:列舉出所有的狀態方案。因為直接列舉得開好多迴圈,所以我可以採用類似狀態壓縮的思想,每個狀態對應乙個三進製數,然後三進製數的每一位對應10個數字,這樣比較好解決一些。
實現**如下:
#include using namespace std;
int a[10], n, res;
int main()
n -= 10;
for (int i = 0; i < 59049; i ++)
if (cnt == n) res ++;
}cout << res << endl;
for (int i = 0; i < 59049; i ++)
if (cnt != n) continue;
for (int j = 0; j < 10; j ++)
cout << endl;
}return 0;
}
新手村之BOSS戰 入門綜合練習1
p1478 陶陶摘蘋果 公升級版 總 把力氣從小到大排序,判斷是否能摘到,累加。var j,ans,n,s,h,h1,i longint x,y array 1.5000 of longint procedure init var i longint begin readln n,s readln ...
洛谷訓練新手村之「陣列」題解
題目大意 求有多少蘋果樹的高度 le 陶陶的高度 30。解題思路 開陣列存資料,然後迴圈遍歷一遍。實現 如下 include using namespace std int a 11 cnt int main 題目大意 給你若干區間,求有多少點沒有被這些區間覆蓋。解題思路 開乙個 cut 陣列,cu...
新手村 Boss戰 入門綜合練習2 Cantor表
題目鏈結 按照從右上到左下的斜對角來看,每條對角線可以分成1個數字 2個數字 3個數字 對於乙個n,我們可以先找出來是在第幾層的,1是第一層,2 3是第二層,4 6是第三層 層數標號11 22 3 34 6 45 10 那麼顯然,k k 1 2 k 1 k2 時,有第 n 個表示式在第k層 其實這時...