• 关于CSDN编程竞赛第五期


    建议以及感受

    比赛当日网站崩溃,页面都进不去,体验极差,但好在后来修复bug后延长了参加时间。

    总的来说,能感受到 CSDN 越来越重视自己举办的编程竞赛了,虽然比不上力扣,牛客,洛谷等这些网站。希望 CSDN 能请一些专业的出题人,或者找一些大厂的笔试算法题(最好改编一下别直接原题),能对参赛者有实际提升价值的比赛才算是好的比赛,最好照顾到不同级别的选手,难易程度要把握好,此外就没有什么大的建议了,CSDN 本质是博客技术网站,举办编程竞赛无可厚非,但既然要做就请一定要做好。

    祝 CSDN 越办越好

    题目

    1、题目名称:寻因找祖

    寻找因子个数为n的最小整数x.

    我只拿了70%部分分,就是纯暴力,统计之后找最小的

    代码示例

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. using namespace std;
    7. const int maxn = 2e6 + 10;
    8. int n;
    9. int minn[maxn];
    10. int cnt[maxn];
    11. int main(){
    12. cin >> n;
    13. memset(minn, -1, sizeof(minn));
    14. for(int i = 1; i < maxn; i++){
    15. for(int j = i; j < maxn; j+=i){
    16. cnt[j]++;
    17. }
    18. }
    19. for(int i = 1; i < maxn; i++) if(minn[cnt[i]] == -1) minn[cnt[i]] = i;
    20. cout << minn[n] << endl;
    21. }

    2、题目名称:通货膨胀-x国货币

    X国发行货币最高面额为n。 次高面额为n的因子。 以此类推。 X国最多发行多少种货币。

     最多发行多少种货币,就表示最多有几个因子,直接统计就可以了

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. using namespace std;
    7. int n;
    8. int main(){
    9. cin >> n;
    10. int res=0;
    11. for(int i=2;i*i<=n;i++){
    12. if(n%i==0){
    13. int cnt=0;
    14. while(n%i==0){
    15. cnt++;
    16. n/=i;
    17. }
    18. res+=cnt;
    19. }
    20. }
    21. if(n>1)res++;
    22. cout<1;
    23. }

    3、题目名称:莫名其妙的键盘

    有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字 符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个 字符串,若用该键盘输入,有多少种方法可以得到?

    不会,没写

    4、题目名称:三而竭

    一鼓作气再而衰三而竭。 小艺总是喜欢把任务分开做。 小艺接到一个任务,任务的总任务量是n。 第一天小艺能完成x份 任务。 第二天能完成x/k。 。。。 第t天能完成x/(k^(t-1))。 小艺想知道自己第一天至少完成多少才能完成最后的任务。

    二分答案

    1. #include
    2. #include
    3. #include
    4. #include
    5. using namespace std;
    6. int n,k;
    7. bool judge(int x){
    8. long long now = 0;
    9. while(x){
    10. now += x;
    11. x /= k;
    12. }
    13. if(now >= n) return 1;
    14. return 0;
    15. }
    16. int main() {
    17. cin >> n >> k;
    18. int l = 0,r = 1000000000;
    19. while(l < r){
    20. int mid = (l+r)/2;
    21. if(judge(mid)){
    22. r = mid;
    23. }
    24. else{
    25. l = mid+1;
    26. }
    27. }
    28. cout << r;
    29. return 0;
    30. }

  • 相关阅读:
    windows11系统没有系统散热方式的解决办法
    【day21】每日一题——MP3光标位置
    Viewpager2嵌套RecyclerView导致的滑动卡顿
    一起Talk Android吧(第四百零八回:间接绘制几何图形)
    only id(String) method calls allowed in plugins {} script block
    Acwing 算法基础课 c++模板整理(附python语法基础题)
    537、RabbitMQ详细入门教程系列 -【消费者Consumer(一)】 2022.08.31
    C语言:如何写文档注释、内嵌注释、行块注释?
    第三阶段第一章——PySpark实战
    netcore项目中的GC模式
  • 原文地址:https://blog.csdn.net/haobowen/article/details/126790260