当前位置: 首页 > news >正文

ABC 353

目录

        C. Sigma Problem

        D. Another Sigma Problem 


 

 

 

C. Sigma Problem

 

        容斥。所有都先不取模,每个数出现 n - 1次,先算出不取模的答案。

        接下来找出哪些对之和超出了 1e8,统计这样的对的个数,再拿之前的答案减掉 个数 * 1e8

        只需要用二分就可以查找了, lower_bound(a + i + 1, a + n + 1, mod - a[i]) - a 的查找范围:

        [ i + 1, n ]

 

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 3e5 + 5, INF = 1e18, mod = 1e8;int T, n, cnt, tot, ans, a[N];
string s;signed main()
{cin >> n;for (int i = 1; i <= n; i ++){cin >> a[i];ans += a[i];}ans *= (n - 1);sort(a + 1, a + n + 1);for (int i = 1; i <= n; i ++){int pos = lower_bound(a + i + 1, a + n + 1, mod - a[i]) - a;ans -= (n + 1 - pos) * mod;}cout << ans;return 0;
}

 

若数组 a 的下标从 1 开始,要在闭区间 [l, r](其中 l 和 r 分别代表左右端点的下标)内查找第一个大于或等于 x 的元素,lower_bound 的正确使用方式如下:int pos = lower_bound(a + l, a + r + 1, x) - a;

 

 

 

 

 

D. Another Sigma Problem 

 

        每一个 ai 作为 Ai 共 n - i 次,作为 Aj 共 i - 1 次,按每个数算贡献。

        g 数组一定要每一个都取模

        

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 5, INF = 1e18, mod = 998244353;int T, n, cnt, ans, a[N], c[N], d[N], g[N];
string s;int fpow(int a, int b)
{int res = 1;while (b){if (b & 1)res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}signed main()
{cin >> n;for (int i = 1; i <= n; i ++){cin >> a[i];s = to_string(a[i]);int len = s.length();c[i] = len;}g[n] = 0;for (int i = 1; i <= n; i ++)d[i] = fpow(10, c[i] % ( mod - 1));for (int i = n - 1; i >= 1; i --)g[i] = (g[i + 1] + d[i + 1]) % mod;for (int i = 1; i <= n; i ++){ans = (ans + a[i] * (i - 1) % mod) % mod;ans = (ans + a[i] * g[i] % mod) % mod;}cout << ans;return 0;
}
http://www.xdnf.cn/news/573427.html

相关文章:

  • ROS2 CV_bridge与opencv版本冲突
  • 学习 Pinia 状态管理【Plan - May - Week 2】
  • 创建一个element plus项目
  • [C++入门]类和对象下
  • 东莞一锂离子电池公司IPO终止,客户与供应商重叠,社保缴纳情况引疑
  • GitLab 配置 webhook
  • 越小越优先和越大越优先
  • oracle使用SPM控制执行计划
  • 使用Redis的Bitmap实现了签到功能
  • iPaaS集成平台技术选型关注哪些指标?
  • HJ20 密码验证合格程序【牛客网】
  • 测试W5500的第4步_使用ioLibrary库创建UDP客户端和服务器端
  • 数据结构核心知识总结:从基础到应用
  • 6-码蹄集600题基础python篇
  • Mysql数据库相关命令及操作
  • 链表-两两交换链表中的节点
  • Mysql差异备份与恢复
  • Python图像处理全攻略:从基础到前沿技术深度剖析
  • 极大似然估计与机器学习
  • python查询elasticsearch 获取指定字段的值的list
  • 操作系统期末复习(一)
  • 淘宝扭蛋机小程序开发:开启电商娱乐新玩法
  • 工程项目交付质量低?如何构建标准化管理体系?
  • C++网络编程入门学习(四)-- GDB 调试 学习 笔记
  • 第9.1讲、Tiny Encoder Transformer:极简文本分类与注意力可视化实战
  • 计算机操作系统(十)调度的概念与层次,进程调度的时机与进程的调度方式
  • LVLM-AFAH论文精读
  • GitHub SSH Key 配置详细教程(适合初学者,Windows版)-学习记录4
  • CESM2.0 全流程解析:从环境搭建到多模块耦合模拟
  • 打开小程序提示请求失败(小程序页面空白)