当前位置:   article > 正文

【作业】 贪心算法1

【作业】 贪心算法1

Tips:三题尚未完成。 

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. int a[110];
  5. int main(){
  6. int n,r,sum=0;
  7. cin>>n>>r;
  8. for(int i=0;i<n;i++){
  9. cin>>a[i];
  10. }
  11. sort(a+0,a+n);
  12. for(int i=0;i<n;i++){
  13. if(i>=r){
  14. a[i]=a[i-r]+a[i];
  15. }
  16. sum+=a[i];
  17. }
  18. cout<<sum<<endl;
  19. return 0;
  20. }

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. struct ACT{
  5. int st;
  6. int et;
  7. };
  8. ACT a[110];
  9. bool cmp(ACT,ACT);
  10. int main(){
  11. int n;
  12. cin>>n;
  13. for(int i=0;i<n;i++){
  14. cin>>a[i].st>>a[i].et;
  15. }
  16. sort(a+0,a+n,cmp);
  17. int sum=1;
  18. int t=a[0].et;
  19. for(int i=1;i<n;i++){
  20. //cout<<a[i].st<<' '<<t<<' '<<(a[i].st<t)<<endl;
  21. if(a[i].st>=t){
  22. sum++;
  23. t=a[i].et;
  24. }
  25. }
  26. cout<<sum;
  27. return 0;
  28. }
  29. bool cmp(ACT a,ACT b){
  30. return a.et<b.et;
  31. }

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. int mis[1010];
  5. int demis[1010];
  6. int demcnt=0;
  7. int main(){
  8. int n;
  9. cin>>n;
  10. for(int i=0;i<n;i++){
  11. cin>>mis[i];
  12. }
  13. for(int i=0;i<n;i++){
  14. bool a=0;
  15. int b=-1;
  16. demis[b]=100000;
  17. for(int j=0;j<demcnt;j++){
  18. if(mis[i]<demis[j]&&demis[j]<demis[b]){
  19. a=1;
  20. b=j;
  21. demis[b]=mis[i];
  22. }
  23. }
  24. if(a==0){
  25. demis[demcnt]=mis[i];
  26. demcnt++;
  27. }
  28. }
  29. cout<<demcnt;
  30. return 0;
  31. }

  1. #include <iostream>
  2. using namespace std;
  3. int a[110][110]={0};
  4. int main(){
  5. int n,ma=0;
  6. cin>>n;
  7. for(int i=1;i<=n;i++){
  8. for(int j=1;j<=n;j++){
  9. cin>>a[i][j];
  10. a[i][j]=a[i][j-1]+a[i][j];
  11. }
  12. }
  13. for(int j=1;j<=n;j++){
  14. for(int i=1;i<=n;i++){
  15. a[i][j]=a[i-1][j]+a[i][j];
  16. }
  17. }
  18. for(int sx=1;sx<=n;sx++){
  19. for(int sy=1;sy<=n;sy++){
  20. for(int ex=sx;ex<=n;ex++){
  21. for(int ey=sy;ey<=n;ey++){
  22. ma=max(ma,a[ex][ey]-a[ex][sy-1]-a[sx-1][ey]+a[sx-1][ey-1]);
  23. }
  24. }
  25. }
  26. }
  27. cout<<ma<<endl;
  28. return 0;
  29. }

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. struct BQJ{
  5. int st;
  6. int ed;
  7. };
  8. bool cmp(BQJ a,BQJ b);
  9. int main(){
  10. BQJ a[10100];
  11. int cnt=0,last=-5;
  12. int n;
  13. cin>>n;
  14. for(int i=0;i<n;i++){
  15. cin>>a[i].st>>a[i].ed;
  16. }
  17. sort(a+0,a+n,cmp);
  18. for(int i=0;i<n;i++){
  19. if(last<a[i].st){
  20. last=a[i].ed;
  21. cnt++;
  22. }
  23. }
  24. cout<<cnt;
  25. return 0;
  26. }
  27. bool cmp(BQJ a,BQJ b){
  28. return a.ed<b.ed;
  29. }

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

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. int mis[1010];
  5. int demis[1010];
  6. int misde[1010][1010];
  7. int midcnt[1010]={0};
  8. int demcnt=0;
  9. int main(){
  10. int n;
  11. cin>>n;
  12. for(int i=0;i<n;i++){
  13. cin>>mis[i];
  14. }
  15. for(int i=0;i<n;i++){
  16. bool a=0;
  17. int b=-1;
  18. demis[b]=100000;
  19. for(int j=0;j<demcnt;j++){
  20. if(mis[i]<demis[j]&&demis[j]<demis[b]){
  21. a=1;
  22. b=j;
  23. demis[b]=mis[i];
  24. misde[b][midcnt[b]]=mis[i];
  25. midcnt[b]++;
  26. }
  27. }
  28. if(a==0){
  29. demis[demcnt]=mis[i];
  30. misde[demcnt][midcnt[demcnt]]=mis[i];
  31. midcnt[demcnt]++;
  32. demcnt++;
  33. }
  34. }
  35. cout<<demcnt<<endl;
  36. for(int i=0;i<demcnt;i++){
  37. cout<<i+1<<':';
  38. for(int j=0;j<midcnt[i];j++){
  39. cout<<misde[i][j]<<' ';
  40. }
  41. cout<<endl;
  42. }
  43. return 0;
  44. }

  1. #include <iostream>
  2. #define _MAX 2147483647
  3. using namespace std;
  4. int tap[1100];
  5. int stu[11000];
  6. int ststa=0;
  7. int mi=_MAX;
  8. int m,n;
  9. int t=0;
  10. void func(int);
  11. int main(){
  12. cin>>n>>m;
  13. for(int i=0;i<n;i++){
  14. cin>>stu[i];
  15. }
  16. for(int i=0;i<m;i++){
  17. tap[i]=stu[i];
  18. mi=min(mi,tap[i]);
  19. }
  20. ststa=m;
  21. func(mi);
  22. cout<<t;
  23. return 0;
  24. }
  25. void func(int inc){
  26. int ma=0;
  27. mi=_MAX;
  28. t+=inc;
  29. for(int i=0;i<m;i++){
  30. tap[i]-=inc;
  31. if(tap[i]==0){
  32. tap[i]=stu[ststa];
  33. ststa++;
  34. }
  35. mi=min(mi,tap[i]);
  36. ma=max(ma,tap[i]);
  37. }
  38. if(ststa==n){
  39. t+=ma;
  40. return;
  41. }
  42. func(mi);
  43. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/847004
推荐阅读
相关标签
  

闽ICP备14008679号