Luogu 魔法学院杯-第二弹(萌新的第一法blog)

2024-03-21 03:10

本文主要是介绍Luogu 魔法学院杯-第二弹(萌新的第一法blog),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虽然有点久远  还是放一下吧。

传送门:https://www.luogu.org/contest/show?tid=754

第一题  沉迷游戏,伤感情

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;long long t,n,ans,i,c[10005],last,now,sum[10005],s;
deque<long long> q;inline long long read()
{long long ret=0,iep=1;char ch=getchar();while (ch<'0' || ch>'9') {if (ch=='-') iep=-1;ch=getchar();}while (ch>='0'&&ch<='9') {ret=ret*10+ch-'0';ch=getchar();}return ret;
}int main()
{t=read();while (t--){n=read();ans=0;memset(sum,0,sizeof sum);for (i=1;i<=n;i++) s=read(),sum[i]=s+sum[i-1];q.clear();for (i=1;i<=n;i++){c[i]=read();while (!q.empty() && c[i]<=c[q.back()]) q.pop_back();q.push_back(i);}last=0;while (!q.empty()){now=q.front();q.pop_front();ans+=(sum[now]-sum[last])*c[now];last=now;}printf("%lld\n",ans);}
}

 

 第二题  精研白学,减智商

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;int n,m,t,x,y,last,i,k,tot;
double f[10005][2],z,a[1500];struct node{int x,y;double z;
}A[10005];struct edge{double s[305][305];edge operator *(const edge &x) const{edge ret;for (int i=1;i<=n;i++)for (int j=1;j<=n;j++){ret.s[i][j]=0;for (int k=1;k<=n;k++)ret.s[i][j]+=s[i][k] * x.s[k][j];}return ret;}
}mat,map;inline int read()
{int ret=0,iep=1;char ch=getchar();while (ch<'0' || ch>'9') {if (ch=='-') iep=-1;ch=getchar();}while (ch>='0'&&ch<='9') {ret=ret*10+ch-'0';ch=getchar();}return ret;
}int dfs()
{last=0;for (i=1;i<=n;i++) f[i][0]=a[i];for (i=1;i<=n;i++) f[i][(last+1)%2]=0;for (i=1;i<=tot;i++) f[A[i].y][(last+1)%2]+=f[A[i].x][last%2]*map.s[A[i].y][A[i].x]*1.0;
}edge ksm(int x)
{if (x==1) return mat;edge ret=ksm(x/2);ret=ret*ret;if (x&1) return ret*mat;return ret;
}int doit()
{last=0;for (i=1;i<=n;i++) f[i][0]=a[i];for (k=1;k<=t;k++){for (i=1;i<=n;i++) f[i][(last+1)%2]=0;for (i=1;i<=tot;i++) f[A[i].y][(last+1)%2]+=f[A[i].x][last%2]*A[i].z*1.0;last++;}
}int main()
{n=read();m=read();t=read();tot=0;if (n<100){for (i=1;i<=m;i++)tot++,A[tot].x=read(),A[tot].y=read(),cin>>A[tot].z,mat.s[A[tot].y][A[tot].x]+=A[tot].z;map=ksm(t);for (i=1;i<=n;i++) cin>>a[i];dfs();last++;for (i=1;i<n;i++)printf("%.6f ",f[i][last%2]);printf("%.6f\n",f[n][last%2]);}else{for (i=1;i<=m;i++)tot++,A[tot].x=read(),A[tot].y=read(),cin>>A[tot].z;for (i=1;i<=n;i++) cin>>a[i];doit();for (i=1;i<n;i++)printf("%.6f ",f[i][last%2]);printf("%.6f\n",f[n][last%2]);}return 0;
}

 

 

 

转载于:https://www.cnblogs.com/tantanshuangjian/p/6034821.html

这篇关于Luogu 魔法学院杯-第二弹(萌新的第一法blog)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831585

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

半年高达552亿元,锁定云第一,中国电信天翼云紧追不舍

【科技明说 | 科技热点关注】 刚才我注意到中国电信公布2024年中期业绩,报告期内,中国电信实现营业收入为人民币2660亿元,同比增长2.8%,其中服务收入为人民币2462亿元,同比增长4.3%;净利润为人民币218亿元,同比增长8.2%。 其中亮点,2024年上半年,天翼云保持快速增长,收入达到了552亿元,同比增长20.4%,占服务收入比升至22.4%,市场头部地位进一步巩固。 为

【Linux】萌新看过来!一篇文章带你走进Linux世界

🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、初识Linux💥1.1 什么是操作系统?💥1.2 各种操作系统对比💥1.3 现代Linux应用💥1.4 Linux常用版本 💥2、Linux 和 Windows 目录结构对比💥2.1 文件系统组织方式💥2.2

探索Python的数学魔法:Numpy库的神秘力量

文章目录 探索Python的数学魔法:Numpy库的神秘力量背景:为什么选择Numpy?Numpy是什么?如何安装Numpy?五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索Python的数学魔法:Numpy库的神秘力量 背景:为什么选择Numpy? 在Python的世界中,数据处理和科学计算是不可或缺的一部分。但原生Python在处理大规模数据时可能会显

FHQ Treap模版(luogu P3369)

FHQ Treap模版(自用),带注释 #include<bits/stdc++.h>using namespace std;const int N=1e5+10;int n,root,idx;struct node{int l,r;int val,key,size;}tr[N];int getnew(int v){tr[++idx].val=v;//权值tr[idx].key=rand(

玩转Python Turtle库,实现满屏飘字的魔法!

前言     本文将教你如何使用Python的Turtle库,通过简单的编程实现满屏飘字的炫酷效果。无需复杂的编程知识,跟着我们的步骤,你也可以成为编程小达人! 效果展示 开发过程 一、准备工作 首先,确保你的电脑上已经安装了Python环境。然后,你需要安装或更新Turtle库(通常Python安装时自带了Turtle库)。 二、编写代码 接下来,我们将通过编写一个简单的P

重复采样魔法:用更多样本击败单次尝试的最强模型

这篇文章探讨了通过增加生成样本的数量来扩展大型语言模型(LLMs)在推理任务中的表现。 研究发现,重复采样可以显著提高模型的覆盖率,特别是在具有自动验证工具的任务中。研究还发现,覆盖率与样本数量之间的关系可以用指数幂律建模,揭示了推理时间的扩展规律。尽管多数投票和奖励模型在样本数量增加时趋于饱和,但在没有自动验证工具的任务中,识别正确样本仍然是一个重要的研究方向。 总体而言,重复采样提供了一种

双项第一!鼎捷强势领跑PLM市场

近日,国际数据公司IDC发布了《中国PLM市场分析及厂商份额,2023:创新左移》 报告数据显示鼎捷PLM2023年收入增长率39.5%,收入增速市场第一 鼎捷在多个细分行业市场中保持领先,在装备制造PLM领域市场份额达到7.9%市占率第一 IDC《中国PLM市场分析及厂商份额,2023:创新左移》(Doc#CHC52050724,2024年8月) 报告数据显示,2023年中国PLM软