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

P3909 异或之积 解题报告

异或之积

异或之积题目
这个形式我特别喜欢,直球版公式代入,你就从O(n3)着手,然后前缀和优化到O(n2),然后优化到O(n)
优化形式都是前缀和
废话不多说,直接上代码

//完全暴力 30 - 40pts
// #include<bits/stdc++.h>
// using namespace std;
// using ll = long long;
// const int N = 1e6+10;
// const int MOD = 1e9+7;
// int a[N];
// int main()
// {
//     ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
//     int n;cin>>n;
//     ll ans = 0;
//     for(int i = 1;i <= n;i++)cin>>a[i];//     for(ll i = 1;i <= n;i++)
//     {
//         for(ll j = i+1;j <= n;j++)
//         {
//             for(ll k = j + 1;k <= n;k++)
//             {
//                 ans = (ans + 6 * a[i] % MOD * a[j] % MOD * a[k] % MOD) % MOD;
//             }
//         }
//     }
//     cout<<ans % MOD<<"\n";
//     return 0;
// }//O(n ^ 2)优化 50pts
// #include<bits/stdc++.h>
// using namespace std;
// using ll = long long;
// const int N = 5100;
// const int MOD = 1e9+7;
// ll a[N],Pre[N];
// int main()
// {
//     ll n;cin>>n;
//     ll ans = 0;
//     for(ll i = 1;i <= n;i++)cin>>a[i];
//     for(ll i = 1;i <= n;i++) 
//     {
//         Pre[i] = (Pre[i-1] + a[i]) % MOD; 
//     }//     for(ll i = 1;i <= n;i++)
//     {
//         for(int j = i + 1;j <= n;j++)
//         {
//             ans = ans + (6 * a[i] % MOD * a[j] % MOD * (Pre[n] - Pre[j]) % MOD) % MOD;
//         }
//     }
//     cout<<ans % MOD<<"\n";
//     return 0;
// }//O(n)优化 100pts
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6+10;
const int MOD = 1e9+7;
ll a[N],Pre[N];
int main()
{ll n;cin>>n;ll ans = 0;ll sum = 0;//数组开始到当前元素的累加和ll sum1 = 0;//存储前缀和的平方for(ll i = 1;i <= n;i++)cin>>a[i];for(ll i = 1;i <= n;i++){//更新前缀和的值ans = (ans + sum1 * a[i] % MOD) % MOD;sum1 = (sum1 + sum * a[i] % MOD) % MOD;sum = (sum + a[i]) % MOD;}ans = (ans * 6) % MOD;cout<<ans % MOD<<"\n";return 0;
}

相关文章:

  • 使用 Nacos 的注意事项与最佳实践
  • 深入理解CSS中的`transform-origin`属性
  • 树莓派超全系列教程文档--(40)树莓派config.txt旧版GPIO控制、超频及条件过滤器
  • 2025.4.22学习日记 JavaScript的常用事件
  • 电力系统中为什么采用三相交流电?
  • 虚拟机的网络配置
  • Springboot整合MyBatisplus和快速入门
  • apt --fix-broken install报错? Nvidia-driver没办法安装x
  • 利用 SSH 实现 WordPress 网站的全面安全管理
  • 2023蓝帽杯初赛内存取证-6
  • synchronized锁
  • Unity设计模式实战:用单例和观察者模式优化你的游戏架构 (Day 36)
  • 【Dv3Admin】从零搭建Git项目安装·配置·初始化
  • 数据结构:栈
  • notepad++技巧:查找和替换:扩展 or 正则表达式
  • 《Android系统应用部署暗礁:OAT文件缺失引发的连锁崩溃与防御体系构建》
  • 数据库基础——事务
  • AES-128、AES-192、AES-256 简介
  • 缓存,内存,本地缓存等辨析
  • Spark-Streaming(1)
  • 裁员15%、撤销132个机构,美国务院将全面重组
  • 直播中抢镜“甲亢哥”的翁东华卸任!此前任文和友小龙虾公司董事
  • “HPV男女共防计划”北半马主题活动新闻发布会在京举办
  • 沉浸式表演+窥探式观演,《情人》三登人艺实验剧场
  • 青海玉树州杂多县发生4.6级地震,震源深度10千米
  • 人民日报:当阅读成为“刚需”