首页 > 其他分享 >做题记录

做题记录

时间:2023-10-25 19:24:49浏览次数:20  
标签:pre 记录 int d% mid long add

10.24

凹了一晚上线段树,P3372然后发现这个板子可以过树状数组,于是过了P3374P3368,都是板子,改改就行了。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5;
int a[maxn+2];
struct tree
{
	int l,r;
	long long pre,add;
}t[4*maxn+2];
void bulid(int p,int l,int r)
{
	t[p].l=l,t[p].r=r;
	if(l==r) 
	{
		t[p].pre=a[l];
		return;
	}
	int mid=l+r>>1;
	bulid(p*2,l,mid);
	bulid(p*2+1,mid+1,r);
	t[p].pre=t[p*2].pre+t[p*2+1].pre;
}
void lazy(int p)
{
	if(t[p].add)
	{
	   t[p*2].pre+=t[p].add*(t[p*2].r-t[p*2].l+1);
	   t[p*2+1].pre+=t[p].add*(t[p*2+1].r-t[p*2+1].l+1);
	   t[p*2].add+=t[p].add;
	   t[p*2+1].add+=t[p].add;
	   t[p].add=0;
	}
}
void change(int p,int x,int y,int z)
{
	if(x<=t[p].l && y>=t[p].r)
	{
		t[p].pre+=(long long)z*(t[p].r-t[p].l+1);
		t[p].add+=z;
		return;
	}
	lazy(p);
	int mid=t[p].l+t[p].r>>1;
	if(x<=mid) change(p*2,x,y,z);
	if(y>mid) change(p*2+1,x,y,z);
	t[p].pre=t[p*2].pre+t[p*2+1].pre;
} 
long long find(int p,int x,int y)
{
	if(x<=t[p].l && y>=t[p].r) return t[p].pre;
	lazy(p);
	int mid=t[p].l+t[p].r>>1;
	long long ans=0;
	if(x<=mid) ans+=find(p*2,x,y);
	if(y>mid) ans+=find(p*2+1,x,y);
	return ans;
} 
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	cin>>a[i];
	bulid(1,1,n);
	for(int i=1;i<=m;++i)
	{
		int q,x,y,z;
		cin>>q;
		if(q==1) 
		{
			cin>>x>>y>>z;
			change(1,x,y,z);
		}
		else 
		{
			cin>>x>>y;
			cout<<find(1,x,y)<<endl;
		}
	}
}

然后把J组T1过了,(考场没想出来)。
然后开颓,过了几个板子,不说了。

10.25

开概率期望,然后做了一个很水的概率期望P1297

code

#include<bits/stdc++.h>
using namespace std;
long long n,A,B,C,a[10000010];
void init()
{
   scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);
for (int i = 2; i <= n; i++)
   a[i] = ((long long) a[i - 1] * A + B) % 100000001;
for (int i = 1; i <= n; i++)
   a[i] = a[i] % C + 1;
}
int main()
{
   double ans;
   init();
   a[n+1]=a[1];
   for(int i=1;i<=n;++i)
   {
       ans+=1/double(max(a[i+1],a[i]));
   }
   printf("%.3f",ans);

}

咋这么短啊,恼了。

标签:pre,记录,int,d%,mid,long,add
From: https://www.cnblogs.com/iNFiNiTE-ENERZY-Overdose-/p/17787932.html

相关文章

  • 记录--纯前端也可以实现「用户无感知录屏」
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言要在JavaScript中实现屏幕录制,可以使用navigator.mediaDevices.getDisplayMedia()方法来获取屏幕的媒体流。然后,可使用MediaRecorder对象将媒体流录制为视频文件。但该方法会在浏览器弹出一个授权窗口,......
  • RT-Smart 应用开发笔记:fopen 造成文件被清空问题的分析记录
    前言RT-Smart应用(apps)开发环境,ubuntu20.04+win10VSCode最近在调试一个问题,需要使用FILE的fopen、fread等去读取处理一个大文件,为了尽快复现验证问题,随手搜了一下fopen等几个API的用法,调试时闹出来一个【笑话】,程序运行所到之处,把处理过的本地文件清空了。当时初步的目......
  • KubeSphere v3.4.0 创建Mysql 8.1.0 数据库主从记录
    主要讲下KubeSphere中创建【有状态】的【工作负载】需要注意的配置问题。这里的创建过程也不详细描述,网上简单找一找也有。重点在使用存储里面的配置字典:1、先创建一个配置字典,参考名:mysql-config2、创建一主一从的配置项,键(主库):master-1.cnf值(主库):[mysqld]port......
  • 【记录10】华为云耀云服务器L实例-使用Docker拉取nginx镜像的部署示例
     Docker 是一个开源平台,用于开发、运输和运行应用程序。它使用容器化技术来包装应用程序及其依赖项,以便在任何环境中都能一致地运行。简单来说,Docker 可以将应用程序及其所有依赖项打包成一个容器,这样就可以确保它无论在哪里运行都表现一致。 ### Docker 的主要组件:1.......
  • ChatGPT 问答00024 10亿小片段文本推荐用什么数据库记录
    对于这种大规模的文本数据,一种可能的解决方案是使用分布式数据库系统,它能够有效地处理和查询大量数据。以下是一些可能的选择:ApacheCassandra:Cassandra是一个高度可扩展的分布式数据库,特别适合处理大量数据跨多个数据中心和云服务。它提供了高性能和无单点故障等特点。Goog......
  • 分区函数 Partition By 与 row_number() 的用法 & 排序rank()的用法详解(获取分组(分
    partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,分区函数一般与排名函数一起使用。准备测试数据:createtable......
  • tf-agent 报错 ValueError 解决记录
    摘要:最近强化学习需要用到tf-agents,记录一下使用过程遇到的问题。版本说明:tensorflow2.14.0gym0.23.0tf-agents0.17.0numpy1.24.0ale-py0.8.1......
  • Redis 6 学习笔记 4 —— 通过秒杀案例,学习并发相关和apache bench的使用,记录遇到的问
    背景这是某硅谷的redis案例,主要问题是解决计数器和人员记录的事务操作按照某硅谷的视频敲完之后出现这样乱码加报错的问题 乱码的问题要去tomcat根目录的conf文件夹下修改logging.properties,把下面两个encoding参数都改成GBK就行。其实错误也很明显(ClassNotFoundExceptio......
  • vulnstack2靶场记录
    内网渗透:Vulnstack2靶场记录环境配置web机恢复快照至v1.3在VMWare上开一张新的虚拟网卡,网段为10.10.10.0/24检测连通性:在192.168.208.0/24网段下,Kali一开始死活ping不通web和PC,解决方案:允许防火墙进行ICMP回显netshfirewallseticmpsetting8:允许被ping关闭手......
  • 刷题记录-移除元素
    刷题记录-移除元素移除元素给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例......