暑假集训CSP提高模拟11

暑假集训CSP提高模拟11

组题人: @KafuuChinocpp

\(T1\) P152. Fate \(24pts\)

  • 强化版: HDU1688 Sightseeing

  • \(dis_{i,0/1}\) 表示从 \(s\)\(i\) 的最短路/次短路长度, \(f_{i,0/1}\) 表示从 \(s\)\(i\) 的最短路/次短路条数。

  • \(dijkstra\) 过程中按照路径长度与最短路、次短路的大小关系四种情况进行反讨。

  • 由于需要统计最短路及次短路,vis 数组同样需要记录当前是最短路还是次短路去更新状态

  • 最后判断一下次短路长度是否等于最短路长度减一。

    点击查看代码
    const ll p=1000000007;
    struct node
    {ll nxt,to,w;
    }e[400010];
    struct quality
    {ll dis,x,id;bool operator < (const quality another) const{return dis>another.dis;}
    };
    ll head[400010],vis[400010][2],dis[400010][2],f[400010][2],cnt=0;
    void add(ll u,ll v,ll w)
    {cnt++;e[cnt].nxt=head[u];e[cnt].to=v;e[cnt].w=w;head[u]=cnt;
    }	
    void dijkstra(ll s)
    {ll x,id,i;priority_queue<quality>q;memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));dis[s][0]=0;f[s][0]=1;q.push((quality){dis[s][0],s,0});while(q.empty()==0){x=q.top().x;id=q.top().id;q.pop();if(vis[x][id]==0){vis[x][id]=1;for(i=head[x];i!=0;i=e[i].nxt){if(dis[e[i].to][0]>dis[x][id]+e[i].w){dis[e[i].to][1]=dis[e[i].to][0];f[e[i].to][1]=f[e[i].to][0];dis[e[i].to][0]=dis[x][id]+e[i].w;f[e[i].to][0]=f[x][id];q.push((quality){dis[e[i].to][0],e[i].to,0});q.push((quality){dis[e[i].to][1],e[i].to,1});}else{if(dis[e[i].to][0]==dis[x][id]+e[i].w){f[e[i].to][0]=(f[e[i].to][0]+f[x][id])%p;}else{if(dis[e[i].to][1]>dis[x][id]+e[i].w){dis[e[i].to][1]=dis[x][id]+e[i].w;f[e[i].to][1]=f[x][id];q.push((quality){dis[e[i].to][1],e[i].to,1});}else{if(dis[e[i].to][1]==dis[x][id]+e[i].w){f[e[i].to][1]=(f[e[i].to][1]+f[x][id])%p;}}}}}}}
    }
    int main()
    {ll n,m,s,t,u,v,i;cin>>n>>m>>s>>t;for(i=1;i<=m;i++){cin>>u>>v;add(u,v,1);add(v,u,1);}dijkstra(s);cout<<(dis[t][1]-1==dis[t][0])*f[t][1]<<endl;return 0;
    }
    

\(T2\) P153. EVA \(5pts\)

  • 原题: [ABC274F] Fishing

  • 从贪心的角度分析,网的一端和至少一条鱼重合一定不劣。

  • 考虑枚举与左端点重合的鱼,然后固定这条鱼,令其他鱼与其做相对运动,处理出进入网的左右 \(t\) 边界,差分后,由于左端点已经固定,所以直接继承即可。

  • 特判速度相等的情况。

  • 略卡精度。

    点击查看代码
    const double eps=1e-10;
    int w[2010],x[2010],v[2010];
    map<double,int>d;
    map<double,int>::iterator it;
    int main()
    {int n,a,ans=0,sum,i,j;double l,r;cin>>n>>a;for(i=1;i<=n;i++){cin>>w[i]>>x[i]>>v[i];}for(i=1;i<=n;i++){d.clear();sum=w[i];for(j=1;j<=n;j++){if(i!=j){if(v[i]==v[j]){if(x[i]<=x[j]&&x[j]<=x[i]+a){sum+=w[j];}}else{l=1.0*(x[i]-x[j])/(v[j]-v[i]);r=1.0*(x[i]+a-x[j])/(v[j]-v[i]);	if(l-r>eps)//左右端点颠倒了要颠倒回来{swap(l,r);}if(r>=0)//保证存在区间{l=max(l,0.0);d[l]+=w[j];d[r+eps]-=w[j];}}}}ans=max(ans,sum);for(it=d.begin();it!=d.end();it++){sum+=it->second;ans=max(ans,sum);}}cout<<ans<<endl;return 0;
    }
    

\(T3\) P166. 嘉然登场 \(5pts\)

  • 原题: [ARC148E] ≥ K

\(T4\) P178. Clannad \(0pts\)

  • 原题: luogu P9340 [JOISC 2023 Day3] Tourism

总结

  • \(T1\)
    • 没想到在 \(dijkstra\) 过程中同样也能更新次短路,说明对 \(dijkstra\) 节点标记的认识不清楚。
    • 在最短路 \(DAG\) 上统计答案上仅考虑到了最短路径上的点,没考虑到非最短路径上的点也能转移过来。

后记

  • 奖励的限制越来越苛刻了。

    以下图片来源

  • 题目背景夹带私货。

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

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

相关文章

7.29 调试及admin

为什么服务不能启动 go 模块支持 go程序启动过程编译完成之后会在制定目录底下生成一个同名文件, 而不是意向中的service文件 没有搞清楚run是什么的,可以直接运行的 go启动和退出 接口是底层的数据结构 接口的构造过程 反射类型 …

.NET 窗口/屏幕截图

图像采集源除了显示控件(上一篇《.NET 控件转图片》有介绍从界面控件转图片),更多的是窗口以及屏幕。 窗口截图最常用的方法是GDI,直接上Demo吧:1 private void GdiCaptureButton_OnClick(object sender, RoutedEventArgs e)2 {3 var bitmap …

400 Bad Request(错误请求)

400 Bad Request(错误请求):请求无效,服务器无法理解或处理请求。可能的原因包括参数错误、格式错误、缺少必需的字段或数据错误。问题不常见,大多服务器原因,虚拟主机用户联系空间商。 自己购买的服务器,需要寻求三方技术支持排查问题。扫码添加技术【解决问题】专注中…

单细胞转录组上游fasta文件处理

单细胞分析上游fasta文件处理 ——基于cellranger与dropseqRunner###如果测序文件由10X genomics平台产生,则采用cellranger count的基本流程进行fasta文件的上游处理;如果测序文件由dropseq平台产生,则采用dropseqRunner软件进行处理 一、cellranger配置 1、软件安装并查看…

帝国CMS网站忘记后台管理员帐号怎么办?

忘记后台管理员帐号怎么办?使用MySQL数据库管理软件phpmyadmin,查看phome_enewsuser表里的记录:查看username字段的内容。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、…

易优cms空间安装易优,如何去除URL中的index.php

普遍适用于百度云虚拟主机百度云bch云主机支持nginx原生态伪静态规则写法,请将规则写到/webroot/目录下的bcloud_nginx_user.conf文件中(没有则创建),重载站点生效。首先我们写一个bcloud_nginx_user.conf 文件,写入一下代码:location / { if (!-e $request_filename)…

帝国CMS备份数据压缩存放目录

问:帝国CMS备份数据压缩存放目录 答:备份数据压缩存放目录/e/class/config.php扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、P…

访问PHP网站为空白页面怎么办?

错误记录: 访问PHP网站为空白页面错误原因: 部分程序在缓存文件过大时会导致网站空白,出现这种问题时,一般网站后台还是可以访问,登录后台清空程序缓存即可。部分网站程序会生成一个静态页面,而生成的时候因为种种原因,生成的首页文件index.html大小是0KB,没有内容,造…

织梦DedeCMSv5.7安装初始化数据体验包失败的解决方法

有些朋友在安装织梦DEDECMS程序时,安装初始化数据体验包失败,因为体验包数据比较大,网络不好的时候很容易失败,下面是一种比较保险的初始化数据体验包安装方法. 1、先安装一个全新的DedeCMS v5.7 GBK程序,安装时不要勾选安装初始化体验包. 2、下载数据体验包(dedecms v5.6与V5.…

帝国cms为什么生成后的页面都是空白内容?

你的目录权限有问题,重新设置一下安装时需要设置的目录权限.是目录记得应用于子目录与文件扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、…

即时聊天系统(类微信社区)开发需求与功能架构分析

在当今数字化时代,即时通讯应用如微信、QQ、Telegram等已成为人们日常生活中不可或缺的一部分。这些平台不仅支持基础的文字、图片、视频消息传输,还集成了朋友圈分享、个人信息管理、以及高效的通知系统等多元化功能。以下是对一个类微信即时聊天系统开发需求与功能架构的详…

js vue3 vue2鼠标单击事件复制指定内容到粘贴板

借助原生 JavaScript 的 navigator.clipboard.writeText() 方法来时(要求页面是在用户交互的上下文中,比如点击事件处理程序中调用) 如:点击列表的复制按钮,得到指定列(data)的值到粘贴板<template> <div> <button @click="click">复制文…