AC修炼计划(AtCoder Beginner Contest 332)

传送门:AtCoder Beginner Contest 332 - AtCoder

a,b,c都还是很基础了。d题是一个bfs的纯暴力问题。

E - Lucky bag

看看范围,n==15,第一个想法是dfs纯暴力,但所有的情况太大,各种决策层出不穷,会t。所以转而想到了状压dp,我们可以通过状压的迭代省去很多麻烦,但是也止步于想到状压了,不是很会实现。其实这题是通过状压的表示来实现每个背包的状态。我觉得这是道很好的题。时间复杂度是3^{n}*d

代码如下:

// #pragma GCC optimize(3)  //O2优化开启
#include<bits/stdc++.h>
using namespace std;
// #define int long long
typedef long long ll;
typedef pair<int,int> PII;
const int N=998244353;
// const int MX=0x3f3f3f3f3f3f3f3f; 
int n,m;double b[25];
double sum[1<<15];
void icealsoheat(){cin>>n>>m;double avr=0;vector<double>dp(1<<15,1e30);for(int i=0;i<n;i++){cin>>b[i];avr+=b[i];}avr=avr/m;double ans=20000000;for(int i=0;i<(1<<n);i++){for(int j=0;j<n;j++){if((i>>j)&1){sum[i]+=b[j];}}sum[i]=(avr-sum[i])*(avr-sum[i]);}// dp[0]=200000000;dp[0]=0;for(int i=0;i<m;i++){vector<double>ndp(1<<15,1e30);for(int j=0;j<(1<<n);j++){for(int t=j;;t=(t-1)&j){ndp[j]=min(ndp[j],dp[t]+sum[t^j]);if(t==0)break;}}dp=ndp;}printf("%.10lf",dp[(1<<n)-1]/m);
}
signed main(){ios::sync_with_stdio(false);cin.tie();cout.tie();int _yq;_yq=1;// cin>>_yq;while(_yq--){icealsoheat();}
}

F - Random Update Query

这题一看就是个线段树,最近一直在练线段树,终于可以小试牛刀了。我们只需要用俩标记去维护区间中的累乘以及累加,代码如下:

// #pragma GCC optimize(3)  //O2优化开启
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
typedef pair<int,int> PII;
const int mod=998244353;
const int MX=0x3f3f3f3f3f3f3f3f; 
int b[200005];
int n,m;
int kuai(int a,int b){int ans=1;while(b){if(b&1)ans=ans*a%mod;b>>=1;a=a*a%mod;}return ans%mod;
}struct we{int l,r;int s,p;#define ls i*2#define rs i*2+1
}tr[4000005];void pushdow(int i){if(tr[i].s||tr[i].p!=1){tr[ls].s=(tr[ls].s*tr[i].p+tr[i].s)%mod;tr[ls].p=tr[i].p*tr[ls].p%mod;tr[rs].s=(tr[rs].s*tr[i].p+tr[i].s)%mod;tr[rs].p=tr[i].p*tr[rs].p%mod;       tr[i].s=0;tr[i].p=1; }
}void build(int i,int l,int r){tr[i]={l,r,0,1};if(l==r){return;}int mid=(l+r)>>1;build(ls,l,mid);build(rs,mid+1,r);
}void change(int i,int l,int r,int sx,int px,int fx){if(tr[i].l>=l&&tr[i].r<=r){tr[i].p=tr[i].p*px%mod;tr[i].s=(tr[i].s*px%mod+sx*fx%mod)%mod;return;}pushdow(i);int mid=(tr[i].l+tr[i].r)>>1;if(l<=mid)change(ls,l,r,sx,px,fx);if(r>mid)change(rs,l,r,sx,px,fx);}int query(int i,int l,int r){if(tr[i].l==tr[i].r){return (tr[i].p*b[l]%mod+tr[i].s)%mod;}pushdow(i);int mid=(tr[i].l+tr[i].r)>>1;if(r<=mid)return query(ls,l,r);else return query(rs,l,r); }void icealsoheat(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>b[i];}build(1,1,n);while(m--){int l,r,x;cin>>l>>r>>x;int fx=kuai(r-l+1,mod-2)%mod;int px=(r-l)*kuai(r-l+1,mod-2)%mod;change(1,l,r,x,px,fx);}for(int i=1;i<=n;i++){cout<<query(1,i,i)<<" ";// cout<<"***\n";}
}
signed main(){ios::sync_with_stdio(false);cin.tie();cout.tie();int _yq;_yq=1;// cin>>_yq;while(_yq--){icealsoheat();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ可视化工具 打包遇到的yarn intall 问题

文章目录 RocketMQ可视化工具1.github上下载2.修改参数3.运行4.打包5.出错6.解决7.重试8.再解决9.很奇怪运行没错&#xff0c;但是测试错啦10.不想深究&#xff0c;直接跳过测试11.展示成功 RocketMQ可视化工具 1.github上下载 下载地址 https://github.com/apache/rocketmq-…

redis:二、缓存击穿的定义、解决方案(互斥锁、逻辑过期)的优缺点和适用场景、面试回答模板

缓存击穿的定义 缓存击穿是一种现象&#xff0c;具体就是某一个数据过期时&#xff0c;恰好有大量的并发请求过来&#xff0c;这些并发的请求可能会瞬间把DB压垮。典型场景就是双十一等抢购活动中&#xff0c;首页广告页面的数据过期&#xff0c;此时刚好大量用户进行请求&…

Unity 置顶OpenFileDialog文件选择框

置顶文件选择框 &#x1f32d;处理前&#x1f959;处理后 &#x1f32d;处理前 &#x1f959;处理后 解决方案

【TI毫米波雷达入门-10】TI毫米波速度检测思路

知识回顾 FMCW chirp 雷达收发流程 中频信号 傅里叶变换 多目标检测 距离分辨率 最大距离 公式总结 FMCW数据处理流程示例 两个维度看图表 从range维度&#xff0c;水平方向上&#xff0c;反映每个chirp 发出的FMCW被接收天线检测到&#xff0c;2个点的目标&#xff0c;对应两个…

滑动窗口如人生,回顾往事不复还———力扣刷题

第一题&#xff1a;长度最小的子数组 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路&#xff1a; 第一想法肯定时暴力枚举&#xff0c;枚举数组任何一个元素&#xff0c;把他当起始位置&#xff0c;然后从起始位置找最短区间&#xff0c;使得…

uniapp原生插件之安卓app添加到其他应用打开原生插件

插件介绍 安卓app添加到其他应用打开原生插件&#xff0c;接收分享的文本和文件&#xff0c;支持获取和清空剪切板内容 插件地址 安卓app添加到其他应用打开原生插件&#xff0c;支持获取剪切板内容 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 u…

Nyquist Theorem(取样定理)

取样定理&#xff0c;又称为奈奎斯特定理&#xff08;Nyquist Theorem&#xff09;&#xff0c;是信号处理领域中一项至关重要的基本原理。它规定了对于连续时间信号&#xff0c;为了能够完全准确地还原出原始信号&#xff0c;即使是在离散时间下进行采样和再构建&#xff0c;都…

【JUC】二十七、synchronized锁升级之无锁

文章目录 1、背景2、Monitor、Java对象、线程如何关联起来的&#xff1f;3、synchronized锁升级4、锁升级之无锁 关于synchronized同步&#xff0c;能用无锁结构就不要用锁&#xff1b;能锁块&#xff0c;就不要锁整个方法&#xff1b;能用对象锁&#xff0c;就不要用类锁。 用…

python算法例18 滑动窗口的最大值

1. 问题描述 给定一个可能包含重复整数的数组和一个大小为k的滑动窗口&#xff0c;从左到右在数组中滑动这个窗口&#xff0c;找到数组中每个窗口内的最大值。 2. 问题示例 给出数组[1&#xff0c;2&#xff0c;7&#xff0c;7&#xff0c;8]&#xff0c;滑动窗口大小为k3&a…

Redis - 主从集群下的主从复制原理

主从复制过程 数据同步演变过程 sync 同步 Redis 2.8 版本之前&#xff0c;首次通信成功后&#xff0c; slave 会向 master 发送 sync 数据同步请求。然后 master 就会将其所有数据全部发送给 slave &#xff0c;由 slave 保存到其本地的持久化文件中。这个过 程…

conda的安装及使用 以pycharm 为例

下载 https://docs.conda.io/en/latest/miniconda.html 下载 window版本 74M且下着吧。 安装 一路next或agree &#xff0c;不同意人家也不会按装 。重要的是安装目录 让andconda当老大 pycharm的使用 创建项目时如下图选择 成功后进入项目的Terminal则如下图表示成功

快速二维相位解包算法基于按照非连续路径进行可靠性排序

Miguel Arevallilo Herra ez, David R. Burton, Michael J. Lalor, and Munther A. Gdeisat 摘要&#xff1a; 据我们所知&#xff0c;我们描述了一种新的相位展开技术。已经提出了几种基于首先展开最可靠像素的算法。这些仅限于连续路径&#xff0c;并且在定义起始像素时会遇…

目前进度记录

目前已经把之前记录的方法都实现了&#xff0c;目前的主函数可以写的更简单比如 int main(int argc, char* argv[]) {KernelClass::create_kernel();MPI_Init(&argc, &argv);kernel().mpi_manager.init_mpi(argc, argv);//创建种群int group1 kernel().conn_manger.c…

Python特征工程神器:Feature Engine库详解与实战

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 特征工程是机器学习中至关重要的一环&#xff0c;而Feature Engine库作为Python中的强大特征工程工具&#xff0c;提供了丰富的功能和灵活的操作。本文将深入探讨Feature Engine的各种特性&#xff0c;包括缺失值…

单片机的低功耗模式介绍

文章目录 简介一、功耗来源说明1.1、芯片工作模式1.2、静态损耗1.3、I/O额外损耗1.4、动态损耗 二、功耗如何测量三、降低功耗有什么方法3.1、选取合适的芯片工作模式3.2、降低工作频率3.3、关闭不需要使用的外设3.4、 降低静态电流损耗3.5、 周期采集供电3.6、 设置IO口状态 四…

HNU数据库大作业-世界杯比赛系统

前言 之前做的那个版本bug较多&#xff0c;后进行了大量优化。 此项目是一个前后端分离的项目&#xff0c;前端主要使用htmlcssjs搭建&#xff0c;使用的是layui框架 后端使用php语言&#xff0c;仅实现了简单的查询数据库功能&#xff0c;无法实现多并发查询等复杂情况 数…

云架构俭约之道七法则(The Frugal Architect)

文章目录 一、前言关于 Law 与 Rule 的区别 二、云架构俭约之道七法则Design&#xff08;设计方面&#xff09;Law 1&#xff1a;把成本作为非功能性需求Law 2&#xff1a;可持续性系统需要将成本与业务相匹配Law 3&#xff1a;架构设计是一系列权衡的取舍 Measure&#xff08;…

iOS加密CoreML模型

生成模型加密密钥 必须在Xcode的Preferences的Accounts页面登录Apple ID&#xff0c;才能在Xcode中生成模型加密密钥。 在Xcode中打开模型&#xff0c;单击Utilities选项卡&#xff0c;然后单击“Create Encryption Key”按钮。 从下拉菜单中选择当前App的Personal Team&…

多项目同时进行如何做好进度管理?

许多企业都面临着同时进行多个项目的情况&#xff0c;因此项目经理经常需要管理多个项目。多项目管理的难点不仅在于项目数量增加&#xff0c;还在于资源分配不均、难以监控多个项目进度以及复杂的沟通协作。 一、从项目经理的角度分析 首先&#xff0c;要把握高效项目管理的几…

蚂蚁SEO实用的网络baidu蜘蛛有哪些

网络蜘蛛是一种用于从互联网上自动抓取信息的程序。它们根据给定的规则和指令&#xff0c;遍历网站上的页面&#xff0c;收集信息并将其存储在数据库中。网络蜘蛛在搜索引擎、数据挖掘、信息提取等领域有着广泛的应用。本文将介绍一种实用的网络蜘蛛&#xff0c;并探讨其实现原…