当前位置:   article > 正文

P8753 [蓝桥杯 2021 省 AB2] 小平方--2024蓝桥杯冲刺省一

P8753 [蓝桥杯 2021 省 AB2] 小平方--2024蓝桥杯冲刺省一

点击跳转例题
本题注意有个小坑,因为题上说小于n的一半,我们的惯性思维就是 n/2,所以要改成 n/2.0
,或者我们分类讨论,判断n是不是偶数,这样就避免C++中除法是向下取整。
 

 n&1类似于n%2。二进制表示 11&01 == 1。      位运算实用总结

  1. //分类讨论核心代码。
  2. int x=i*i;
  3. if(n&1&&x%n<=(n-1)/2)cnt++;
  4. if(n&1==0&&x%n<n/2)cnt++;
  1. #include <bits/stdc++.h>
  2. #define int long long //(有超时风险)
  3. #define PII pair<int,int>
  4. #define endl '\n'
  5. #define LL __int128
  6. using namespace std;
  7. const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;
  8. int a[N],b[N],c[N],pre[N];
  9. signed main()
  10. {
  11. std::ios::sync_with_stdio(false);
  12. std::cin.tie(nullptr);
  13. int n;cin>>n;
  14. int cnt=0;
  15. for(int i=1;i<n;i++)
  16. {
  17. int x=i*i;
  18. if(x%n<n/2.0)cnt++;
  19. }
  20. cout<<cnt<<endl;
  21. return 0;
  22. }

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

闽ICP备14008679号