码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Codeforces Round #803 (Div. 2)(A-D)


    Dashboard - Codeforces Round #803 (Div. 2) - Codeforceshttps://codeforces.com/contest/1698

    A. XOR Mixup

    Problem - A - CodeforcesCodeforces. Programming competitions and contests, programming communityhttps://codeforces.com/contest/1698/problem/A

    题意:n个数字,保证n-1个数字进行异或之后和剩下的数字相同,找出那个数字.

    思路:两个相同的数异或之后为0,那么该题就变为n个数字异或等于0了,那么我们就可以随机输出一个输入的数字即可.

    1. #include<map>
    2. #include<cmath>
    3. #include<set>
    4. #include<queue>
    5. #include<string>
    6. #include<vector>
    7. #include<cstring>
    8. #include<iostream>
    9. #include<algorithm>
    10. #include<unordered_set>
    11. #include<unordered_map>
    12. #define int long long
    13. using namespace std;
    14. void solve()
    15. {
    16. int n,x;
    17. int ans=0;
    18. scanf("%lld",&n);
    19. for(int i=1;i<=n;i++)
    20. scanf("%lld",&x);
    21. printf("%lld\n",x);
    22. return;
    23. }
    24. signed main()
    25. {
    26. int t;
    27. cin>>t;
    28. while(t--)
    29. solve();
    30. return 0;
    31. }

    B. Rising Sand

    Problem - B - Codeforceshttps://codeforces.com/contest/1698/problem/B

    题意:在长为1到n的数组中,当2到(n-1)个元素出现a[i]>a[i-1]+a[i+1],结果贡献就+1.我们每次可以操作长度为k的连续数组的子数组,每个子数组元素都要+1,问结果贡献最大是多少.

    思路:当k>1时,因为连续的都会+1,根据上面不等式,两边至少要同时+1,所以不论经过多少次操作都不会增加结果贡献大小.这种情况直接遍历求结果即可.当k等于1时,直接贪心输出结果即可.

    1. #include<map>
    2. #include<cmath>
    3. #include<set>
    4. #include<queue>
    5. #include<string>
    6. #include<vector>
    7. #include<cstring>
    8. #include<iostream>
    9. #include<algorithm>
    10. #include<unordered_set>
    11. #include<unordered_map>
    12. using namespace std;
    13. int arr[200005];
    14. void solve()
    15. {
    16. int n,k,cnt=0;
    17. scanf("%d%d",&n,&k);
    18. for(int i=1;i<=n;i++)
    19. scanf("%d",&arr[i]);
    20. if(k==1)
    21. {
    22. printf("%d\n",(n-1)/2);
    23. }
    24. else
    25. {
    26. for(int i=2;i<=n-1;i++)
    27. if(arr[i]>arr[i-1]+arr[i+1])
    28. cnt++;
    29. printf("%d\n",cnt);
    30. }
    31. return;
    32. }
    33. signed main()
    34. {
    35. int t;
    36. cin>>t;
    37. while(t--)
    38. solve();
    39. return 0;
    40. }

    C. 3SUM Closure

    Problem - C - Codeforcesicon-default.png?t=M5H6https://codeforces.com/contest/1698/problem/C题意:给你一个数组,问是否令所有的a[i]+a[j]+a[k]=a[l],a[l]是数组中的元素,且i<j<k.

    思路:这个题有一个规律,当数组内含有0并且只有一个非零数的时候是一定成立的,如果有两个非零数则要保证两者相加等于0.但是,要注意的是,当数组长度比较小的时候,有很多的特殊情况要处理,比如[ 1,-1,2  ]等,考虑起来太麻烦,直接让数组较短的时候进行暴力模拟求即可.

    1. #include<map>
    2. #include<cmath>
    3. #include<set>
    4. #include<queue>
    5. #include<string>
    6. #include<vector>
    7. #include<cstring>
    8. #include<iostream>
    9. #include<algorithm>
    10. #include<unordered_set>
    11. #include<unordered_map>
    12. using namespace std;
    13. void solve()
    14. {
    15. int n,x,cnt=0,x1=0,x2=0;
    16. scanf("%d",&n);
    17. if(n<=10)
    18. {
    19. int a[11];
    20. map<int,int>ma;
    21. for(int i=1;i<=n;i++)
    22. scanf("%d",&a[i]),ma[a[i]]=1;
    23. for(int i=1;i<=n;i++)
    24. {
    25. for(int j=i+1;j<=n;j++)
    26. {
    27. for(int k=j+1;k<=n;k++)
    28. {
    29. int ans=a[i]+a[j]+a[k];
    30. if(ma[ans]==0)
    31. {
    32. printf("NO\n");
    33. return ;
    34. }
    35. }
    36. }
    37. }
    38. printf("YES\n");
    39. return;
    40. }
    41. //数组长度短,直接暴力
    42. for(int i=1;i<=n;i++)
    43. {
    44. scanf("%d",&x);
    45. if (x!=0)
    46. {
    47. cnt++;
    48. if(x1==0)
    49. x1=x;
    50. else if(x2==0)
    51. x2=x;
    52. }
    53. }
    54. if((cnt==2||cnt==0)&&x1+x2==0)
    55. printf("YES\n");
    56. else if(cnt==1)
    57. printf("YES\n");
    58. else
    59. printf("NO\n");
    60. //规律
    61. return;
    62. }
    63. signed main()
    64. {
    65. int t;
    66. cin>>t;
    67. while(t--)
    68. solve();
    69. return 0;
    70. }

    D. Fixed Point Guessing

    Problem - D - Codeforcesicon-default.png?t=M5H6https://codeforces.com/contest/1698/problem/D以前都没写过交互题的,但是这个交互真的简单.

    直接二分区间,当输入的区间内元素在二分的这个区间的个数是偶数时,说明区间内都进行了交换,那么结果就在另一半区间,继续二分即可.

    1. #include<map>
    2. #include<cmath>
    3. #include<set>
    4. #include<queue>
    5. #include<string>
    6. #include<vector>
    7. #include<cstring>
    8. #include<iostream>
    9. #include<algorithm>
    10. #include<unordered_set>
    11. #include<unordered_map>
    12. using namespace std;
    13. bool check(int l,int r)
    14. {
    15. cout<<"? "<<l<<" "<<r<<endl;
    16. int cnt=0,x;
    17. for(int i=l;i<=r;i++)
    18. {
    19. cin>>x;
    20. if(l<=x&&x<=r)
    21. cnt++;
    22. }
    23. if(cnt%2)
    24. return true;
    25. else
    26. return false;
    27. }
    28. void solve()
    29. {
    30. int n;
    31. scanf("%d",&n);
    32. int l=1,r=n;
    33. while(l<r)
    34. {
    35. int mid=(l+r)>>1;
    36. if(check(l,mid))
    37. r=mid;
    38. else
    39. l=mid+1;
    40. }
    41. cout<<"! "<<r<<endl;
    42. return ;
    43. }
    44. signed main()
    45. {
    46. int t;
    47. cin>>t;
    48. while(t--)
    49. solve();
    50. return 0;
    51. }

    注意输出后要fflush(stdout) or cout.flush() in C++;或者直接<<endl.

  • 相关阅读:
    JS10day(api 阶段性完结,正则表达式简介,过滤敏感词案例,注册模块验证案例)
    (Note)在Excel中选中某一行至最后一行的快捷键操作
    KSO - .net6项目中使用RabbitMQ实际项目代码和思路讲解,包括各种踩坑
    今天让你知道PMP考试通过率达97%,可信不可信
    关键词搜索1688商品数据接口(标题|主图|SKU|价格|优惠价|掌柜昵称|店铺链接|店铺所在地)
    springboot-iconfont图标如何使用?
    flowable+springboot的使用
    陌生人真的会传授你赚钱的技能吗?
    关于Web应用和容器的指纹收集以及自动化软件的制作
    Redis单线程为什么还能这么快
  • 原文地址:https://blog.csdn.net/qq_49593247/article/details/125547614
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号