AcWing 3745. 牛的学术圈I

思路

记录一下引用次数的分布,然后遍历判断一下在何处引用之后能够得到最合适的ans即可

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. map<int, int> cnt;
  4. int main()
  5. {
  6. int n,l,x;
  7. cin>>n>>l;
  8. for(int i=0;i<n;i++)
  9. {
  10. cin>>x;
  11. cnt[x]++;
  12. }
  13. int ans;
  14. x=n;
  15. for(ans=0; ans<n; ans++)
  16. {
  17. x-=cnt[ans];
  18. if(x+min(cnt[ans], l) <= ans) break;
  19. }
  20. cout<<ans<<endl;
  21. return 0;
  22. }

AcWing 1442. 单词处理器

思路

模拟题,按照题目给出的思路编程即可,需要注意控制括号的输出范围,即在开头,结尾均不输出

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,k;
  6. string s;
  7. cin>>n>>k;
  8. int cnt=0;
  9. for(int i=0;i<n;i++)
  10. {
  11. cin>>s;
  12. if(cnt + s.size() > k)
  13. {
  14. cout<<endl;
  15. cnt=0;
  16. cout<<s;
  17. }
  18. else if(cnt!=0) cout<<" "<<s;
  19. else cout<<s;
  20. cnt+=s.size();
  21. }
  22. return 0;
  23. }