平均分配

  1. #include <iostream>
  2. using namespace std;
  3. int arr[105];
  4. int main(){
  5. int N,cnt = 0,avg;
  6. cin >> N;
  7. for(int i = 1;i <= N;i++){
  8. cin >> arr[i];
  9. cnt += arr[i];
  10. }
  11. avg = cnt / N;
  12. int t = 0;
  13. for(int i = 1;i < N;i++){
  14. if(arr[i] != avg){
  15. t++;
  16. arr[i + 1] -= avg - arr[i];
  17. }
  18. }
  19. cout << t;
  20. return 0;
  21. }

数据分段问题

  1. #include <iostream>
  2. using namespace std;
  3. int arr[100005];
  4. int main(){
  5. int N,M,x,s = 0,ans = 1;
  6. cin >> N >> M;
  7. for(int i = 1;i <= N;i++){
  8. cin >> x;
  9. if(s + x <= M){
  10. s += x;
  11. }
  12. else{
  13. s = x;
  14. ans++;
  15. }
  16. }
  17. cout << ans;
  18. return 0;
  19. }

找零钱

  1. #include <iostream>
  2. using namespace std;
  3. int coin[5] = {20,10,5,1},n,count = 0;
  4. int main(){
  5. cin >> n;
  6. for(int i = 0;i < 4;i++){
  7. while(n >= coin[i]){
  8. n = n - coin[i];
  9. count++;
  10. }
  11. }
  12. cout << count;
  13. return 0;
  14. }