「ARC 116A」Odd vs Even

Link.

看 \(n\) 有多少 \(2\) 因子。

  1. // Problem: A - Odd vs Even
  2. // Contest: AtCoder - AtCoder Regular Contest 116
  3. // URL: https://atcoder.jp/contests/arc116/tasks/arc116_a
  4. // Memory Limit: 1024 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8. #include<bits/stdc++.h>
  9. using namespace std;
  10. typedef long long LL;
  11. int make_two(LL n){int res=0; while((n&1ll)^1ll) ++res,n>>=1; return res;}
  12. int main()
  13. {
  14. int T; scanf("%d",&T);
  15. while(T--)
  16. {
  17. LL n;
  18. scanf("%lld",&n);
  19. int one=make_two(n);
  20. if(one==1) puts("Same");
  21. else if(one>1) puts("Even");
  22. else puts("Odd");
  23. }
  24. return 0;
  25. }

「ARC 116B」Products of Min-Max

Link.

感觉这题很平庸很 B 题啊,不知道为什么那么多人说难……

首先排序,于是即算

\[\left(\sum_{i=1}^{n}\sum_{j=i+1}^{n}a_{i}\times a_{j}\times2^{j-i-1}\right)+\left(\sum_{i=1}^{n}a_{i}^{2}\right)
\]

也就是

\[\sum_{i=1}^{n}a_{i}\sum_{j=i+1}^{n}a_{j}\times2^{j-i-1} \\
\]

\[\sum_{j=i}^{n}a_{j}\times2^{j-i}=2\left(\sum_{j=i+1}^{n}a_{j}\times2^{j-i-1}\right)+a_{i}
\]

于是直接 \(\mathcal{O}(n)\) 算即可。智慧官方 editorial 指着这个式子说 \(\mathcal{O}(n\log_{2}n)\) 不知道在干嘛。所以爆了个没什么用的标。

  1. // Problem: B - Products of Min-Max
  2. // Contest: AtCoder - AtCoder Regular Contest 116
  3. // URL: https://atcoder.jp/contests/arc116/tasks/arc116_b
  4. // Memory Limit: 1024 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8. #include<bits/stdc++.h>
  9. using namespace std;
  10. typedef long long LL;
  11. const int MOD=998244353;
  12. int n,a[200010],ans,sum;
  13. int main()
  14. {
  15. scanf("%d",&n);
  16. for(int i=1;i<=n;++i) scanf("%d",&a[i]);
  17. sort(a+1,a+n+1);
  18. for(int i=1;i<=n;++i)
  19. {
  20. ans=(ans+LL(sum)*a[i]%MOD+LL(a[i])*a[i]%MOD)%MOD;
  21. sum=((LL(sum)<<1)%MOD+a[i])%MOD;
  22. }
  23. printf("%d\n",ans);
  24. return 0;
  25. }

「ARC 116C」Multiple Sequences

Link.

我们只考虑每个序列的末尾,即 \(A_{n}=1,\cdots,m\) 的情况。我们先来想暴力。

对于每一个 \(A_{n}\) 的取值,记为 \(d\),对 \(d\) 分解质因数,\(d=\prod_{i=1}^{k}p_{i}^{c_{i}}\)。

然后对于这个 \(d\),其可以构成的序列数即 \(\prod_{i=1}^{k}\binom{n+c_{i}-1}{c_{i}}\)。

考虑非暴力,就把素数筛出来就行了。

  1. // Problem: C - Multiple Sequences
  2. // Contest: AtCoder - AtCoder Regular Contest 116
  3. // URL: https://atcoder.jp/contests/arc116/tasks/arc116_c
  4. // Memory Limit: 1024 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8. #include<bits/stdc++.h>
  9. using namespace std;
  10. typedef long long LL;
  11. const int MOD=998244353;
  12. vector<int> makePrime(int n)
  13. {
  14. vector<int> prime,tag(n+1);
  15. tag[1]=1;
  16. for(int i=2;i<=n;++i)
  17. {
  18. if(!tag[i]) prime.push_back(i);
  19. for(int j=0;j<int(prime.size()) && i*prime[j]<=n;++j)
  20. {
  21. tag[i*prime[j]]=1;
  22. if(i%prime[j]==0) break;
  23. }
  24. }
  25. return prime;
  26. }
  27. int n,m,ans;
  28. vector<int> fac,ifac;
  29. void exGCD(int one,int ano,int &x,int &y)
  30. {
  31. if(ano==0) x=1,y=0;
  32. else exGCD(ano,one%ano,y,x),y-=(one/ano)*x;
  33. }
  34. int getInv(int val){int res,w; exGCD(val,MOD,res,w); return (res+MOD)%MOD;}
  35. int C(int n,int k){return n<k?0:LL(fac[n])*ifac[k]%MOD*ifac[n-k]%MOD;}
  36. int main()
  37. {
  38. scanf("%d %d",&n,&m);
  39. vector<int> prime=makePrime(200100);
  40. fac.push_back(1);
  41. for(int i=1;i<=200100;++i) fac.push_back(LL(fac.back())*i%MOD);
  42. for(int i=0;i<=200100;++i) ifac.push_back(getInv(fac[i]));
  43. for(int i=1;i<=m;++i)
  44. {
  45. int curm=i,tmp=1;
  46. for(int j=0;j<int(prime.size()) && prime[j]<=curm;++j)
  47. {
  48. if(curm%prime[j]==0)
  49. {
  50. int ups=0;
  51. while(curm%prime[j]==0) curm/=prime[j],++ups;
  52. tmp=LL(tmp)*C(n+ups-1,ups)%MOD;
  53. }
  54. }
  55. ans=(ans+tmp)%MOD;
  56. }
  57. printf("%d\n",ans);
  58. return 0;
  59. }

「ARC 116D」I Wanna Win The Game

Link.

这题的 DP 感觉略有点难往这方面想。

考虑这题的限制最强的是 \(\texttt{XOR}\) 和为 \(0\) 以及和恰为 \(m\)。可以大概猜测此题与 \(n\) 关系不大。

那么我们可以考虑从最低位开始做这个题。

设 \(f_{i}\) 为构造出来序列的和为 \(i\) 且 \(\texttt{XOR}\) 和为 \(0\) 的数量。

  1. Oops, something went wrong.

「ARC 116E」Spread of Information

Link.

  1. Oops, something went wrong.

「ARC 116F」Deque Game

Link.

  1. Oops, something went wrong.

Solution Set -「ARC 116」(in progress)的更多相关文章

  1. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  2. 「ARC 139F」Many Xor Optimization Problems【线性做法,踩标】

    「ARC 139F」Many Xor Optimization Problems 对于一个长为 \(n\) 的序列 \(a\),我们记 \(f(a)\) 表示从 \(a\) 中选取若干数,可以得到的最 ...

  3. Solution -「ARC 104E」Random LIS

    \(\mathcal{Description}\)   Link.   给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...

  4. Solution -「ARC 104C」Fair Elevator

    \(\mathcal{Description}\)   Link.   数轴从 \(1\sim 2n\) 的整点上有 \(n\) 个闭区间.你只知道每个区间的部分信息(可能不知道左或右端点,或者都不知 ...

  5. Linux 小知识翻译 - 「架构 续」(arch)

    上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构 ...

  6. Diary / Solution Set -「WC 2022」线上冬眠做噩梦

      大概只有比较有意思又不过分超出能力范围的题叭.   可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics   任意一个 ...

  7. Linux 小知识翻译 - 「动态DNS」(DDNS)

    这次聊聊「动态DNS」. DNS上周已经介绍过了,就是提供主机名和IP地址对应关系的结构.「动态DNS」是对主机名和IP地址的对应关系提供动态管理的结构. 以前的DNS没有考虑IP地址变化的情况.但是 ...

  8. 「csp-s模拟测试(9.18)」Set·Read·Race

    昨天考试考得有点迷??? 一看内存限制,T1 64MB T2 16MB 当场懵比......... T1 set 考场打的背包问题和随机化,其实能randA掉,但不小心数组开小了????(长记性!!! ...

  9. Solution -「ARC 101D」「AT4353」Robots and Exits

    \(\mathcal{Description}\)   Link.   有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标 ...

  10. Solution -「ARC 110D」Binomial Coefficient is Fun

    \(\mathcal{Description}\)   Link.   给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...

随机推荐

  1. CANoe _ Panel面板的创建过程

    在Canoe中创建Panel面板,用于显示和操作CAN网络的数据和信号,遵循以下步骤: 1.打开Canoe 启动Canoe软件. 2.打开项目 在Canoe的菜单栏中,选择"File&quo ...

  2. auto main()-> int的含义是什么?

    42 https://stackoverflow.com/questions/21085446/what-is-the-meaning-of-auto-main-int/21085530   C++1 ...

  3. 用CSS实现带动画效果的单选框

    预览一下效果:http://39.105.101.122/myhtml/CSS/singlebox2/singleRadio.html 布局结构为: 1 <div class="rad ...

  4. 从隐私保护到AI隐私保护:隐私隐私保护的跨隐私保护治理框架实践案例

    目录 标题:<从隐私保护到AI隐私保护:跨隐私保护治理框架实践案例> 背景介绍 随着人工智能技术的广泛应用,隐私保护问题也日益突出.数据隐私泄露.算法歧视等问题引发了公众的担忧和不满.为了 ...

  5. Java并发(十二)----线程应用之多线程解决烧水泡茶问题

    1.背景 统筹方法,是一种安排工作进程的数学方法.它的实用范围极广泛,在企业管理和基本建设中,以及关系复杂的科研项目的组织与管理中,都可以应用. 怎样应用呢?主要是把工序安排好. 比如,想泡壶茶喝.当 ...

  6. Kubernetes(k8s) Web-UI界面(二):部署和访问Kuboard

    目录 一.系统环境 二.前言 三.Kuboard简介 四.部署Kuboard 五.访问kuboard 六.总结 七.附加信息 一.系统环境 本文主要基于Kubernetes1.21.9和Linux操作 ...

  7. 从头学Java17-Stream API(二)结合Record、Optional

    Stream API Stream API 是按照map/filter/reduce方法处理内存中数据的最佳工具. 本系列教程由Record讲起,然后结合Optional,讨论collector的设计 ...

  8. Python copy & deeocopy 探究

    简单来说,copy 复制创建新的容器,而引用容器内元素的地址不变.而 deepcopy 也对容器内的容器元素进行复制. 但是这种复制具体是什么体现呢?是否只是对第一层容器元素进行了复制?写了一段代码验 ...

  9. AcWing 4490. 染色题解

    题目描述 样例 输入: 6 1 2 2 1 5 2 1 1 1 1 1 输出 3 算法描述 思路 我们以样例为例讲讲思路. 如何确保dfs能顺利便利呢,我们可以使用链式前向星来存图(树) C++代码 ...

  10. Java相关小知识_6_15

    实体完整性要求每个表都有唯一标识符,每一个表中的主键字段不能为空或者重复的值. 参照完整性要求关系中不允许引用不存在的实体.设定相应的更新删除插入规则来更新参考表. Java语言使用的是Unicode ...