2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】

前言

分数250250,十分开心


正题


T1:音乐节拍

洛谷题目链接:https://www.luogu.org/problemnew/show/P2969

大意

有n段音乐,每段音乐持续时间不同,q个询问求一个时间点再放那首歌

考试时

开始时发现询问的时间点不是按顺序来的,于是就想到了离线算法。

解题思路

先将询问排个序,然后一个指针指向现在的音乐,如果不是的话就往前推。

代码

#include<cstdio>
#include<algorithm>
#define MN 50000
using namespace std;
struct node{int num,que,ans;
}qu[MN+1];
int n,q,b[MN+1];
bool cmp(node x,node y)
{return x.que<y.que;
}
bool cmp2(node x,node y)
{return x.num<y.num;
}
int main()
{//freopen("mnotes.in","r",stdin);//freopen("mnotes.out","w",stdout);scanf("%d%d",&n,&q);for (int i=1;i<=n;i++)scanf("%d",&b[i]);for (int i=1;i<=q;i++){scanf("%d",&qu[i].que);qu[i].num=i;//标记}sort(qu+1,qu+1+q,cmp);//排序int j=1,now=b[1]-1;//记录现在位置for (int i=1;i<=q;i++){while (qu[i].que>now)//往前推{j++;now+=b[j];}qu[i].ans=j;//记录}sort(qu+1,qu+1+q,cmp2);//排回原来的顺序for (int i=1;i<=q;i++)printf("%d\n",qu[i].ans);//输出
}

T2:电视游戏问题

大意

洛谷链接:https://www.luogu.org/problemnew/show/P2967
有n个价格不同平台,上面有不同的游戏,每个游戏有不同的价格和价值,要求价格不超过v时价值最大。

考试时

开始就想到了,然后以为会超时就没打

解题思路

f[0][i]f[0][i]表示到现在并且买了这个平台用了i元时最大价值
f[1][i]f[1][i]表示到上次用了i元时最大价值
要将上一次继承过来

f[0][i]=f[1][iw]f[0][i]=f[1][i−w]

然后动态转移

f[0][i]=max{f[0][iw]+c}f[0][i]=max{f[0][i−w]+c}

最后更新f[1]f[1]

f[1][j]=max{f[0][j]  ,  f[1][j]}f[1][j]=max{f[0][j],f[1][j]}

代码

#include<cstdio>
#include<algorithm>
using namespace std;
int n,v,f[51][100001],w,c,k,wc;
int main()
{freopen("vidgame.in","r",stdin);freopen("vidgame.out","w",stdout);scanf("%d%d",&n,&v);for (int i=1;i<=n;i++){scanf("%d%d",&w,&k);for (int j=w;j<=v;j++)f[0][j]=f[1][j-w];//继承上次for (int m=1;m<=k;m++){scanf("%d%d",&wc,&c);for (int j=v;j>=w+wc;j--)f[0][j]=max(f[0][j],f[0][j-wc]+c);//动态转移}for (int j=1;j<=v;j++)f[1][j]=max(f[0][j],f[1][j]),f[0][j]=0;//更新最大}printf("%d",f[1][v]);
}

T3:头晕的奶牛

洛谷链接:https://www.luogu.org/problemnew/show/P2017

大意

一个n个点的图,有m1条有向边,有m2条无向边,将无向边变为有向边使得图变为有向无环图。

考试时

有向无环图,我就想到了拓扑排序,然后就敲了一个东西发现不行。然后我就研究,发现可以将所有的点都集结在终点是出度为0的。然后打了一个奇怪的东西就80。

解题思路

先用有向边建图,然后再进行拓扑排序,之后一条无向边的话就将拓扑序排在前面的连排在后面的(因为拓扑序排在后面的无论如何也回不到前面)。

代码

#include<cstdio>
#include<algorithm>
using namespace std;
struct node{int to,next;
}a[300001];
int n,m1,m2,x,y,ls[100001],in[100001],tot,head,tail,state[100001];
int d[100001],s,t,star,ta;
void addl(int x,int y)
{a[++tot].to=y;in[y]++;a[tot].next=ls[x];ls[x]=tot;
}
void bfs()//拓扑排序
{do{x=state[++head];for (int i=ls[x];i;i=a[i].next){y=a[i].to;if (!d[y]){in[y]--;if (in[y]==0){state[++tail]=y;d[y]=++ta;}}}}while (head<tail);
}
int main()
{//freopen("dizzy.in","r",stdin);//freopen("dizzy.out","w",stdout);scanf("%d%d%d",&n,&m1,&m2);for (int i=1;i<=m1;i++){scanf("%d%d",&x,&y);addl(x,y);}for  (s=1;s<=n;s++)if (in[s]==0) state[++tail]=s,d[s]=++ta;//寻找起点bfs(),t++;for (int i=1;i<=m2;i++){scanf("%d%d",&x,&y);if (d[x]<d[y]) printf("%d %d\n",x,y);//判断else printf("%d %d\n",y,x);}
}

T4:过路费

洛谷:https://www.luogu.org/problemnew/show/P2966

大意

一个图,一个点到另一个点的距离就是路径边权和加上路径上的最大点值。

考试时

写了一个spfa,然后发现一种情况
这里写图片描述
这时spfa就会走1>2>4>51−>2−>4−>5代价11,可是如果走1>3>4>51−>3−>4−>5的话代是价10。然后我就想到了一个方法:
f[i][j]f[i][j]表示到达i点时路径上最大点值的是j时的最短距离。
然后超时70分

解题思路

首先我们将点值进行排序用num[i]num[i]表示点权从小到大排在第ii的点。然后枚举k时我们先从点权最小的点开始枚举,然后

dis[i][j]=min{dis[i][k]+dis[k][j]}dis[i][j]=min{dis[i][k]+dis[k][j]}

cost[i][j]=min{dis[i][j]+max{c[i],c[j],c[k]}}cost[i][j]=min{dis[i][j]+max{c[i],c[j],c[k]}}

排点权的目的是为了保证 max{c[i],c[j],c[k]}max{c[i],c[j],c[k]}中有里面最大的

代码

#include<cstdio>
#include<algorithm>
#include<cstring>
#define maxs(x,y,z) max(x,max(y,z))
using namespace std;
int n,m,k,num[251],dis[251][251],cost[251][251],c[251],x,y,w;
int main()
{memset(dis,127/3,sizeof(dis));memset(cost,127/3,sizeof(cost));scanf("%d%d%d",&n,&m,&k);for (int i=1;i<=n;i++){num[i]=i;scanf("%d",&c[i]);}for (int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&w);dis[x][y]=dis[y][x]=min(dis[x][y],w);//无向图}for (int i=1;i<n;i++)for (int j=i+1;j<=n;j++)if (c[num[i]]>c[num[j]])swap(num[i],num[j]);//排序for (int q=1;q<=n;q++){int k=num[q];for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)if (i!=j&&i!=k&&j!=k){dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);cost[i][j]=min(cost[i][j],dis[i][j]+maxs(c[i],c[j],c[k]));//Floyd}}for (int i=1;i<=k;i++){scanf("%d%d",&x,&y);printf("%d\n",cost[x][y]);}
}

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

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

相关文章

IDEA一定要改的8条配置

转载自 IDEA一定要改的8条配置 引言 坦白说&#xff0c;我很少写这种操作类型的文章。因为这种文章没啥新意&#xff0c;大家操作步骤肯定是一样的。然而&#xff0c;我答应了我的同事小阳&#xff0c;给她出一篇&#xff01;毕竟人家打算从Eclipse转IDEA了&#xff0c;于是…

.NET Core 2.0使用NLog

最近研究了一下NLog的使用方式&#xff0c;简单的入了一下门。 实现的功能&#xff0c;对于不同的日志&#xff0c;进行不同的记录&#xff0c;分别有系统运行日志&#xff0c;和个人在程序中写的异常日志。发布之后放在了IIS上。进行查看日志的信息 参考了两篇博客。 1.ht…

计划得一步一步实施,题库首先是第一步!

大家好&#xff0c;我是雄雄&#xff0c;好久没见了哈&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天上午没有讲课&#xff0c;听写以及把假期作业整理了下&#xff0c;部分学生的假期作业偷工减料&#xff0c;也都让让让他们挨个补上了。上午将对班级后期的整个计…

OMG!又一个频繁FullGC的案例

转载自 OMG&#xff01;又一个频繁FullGC的案例 将用户已安装APP数据从MySQL中迁移到MongoDB中。MySQL中存储方式比较简单&#xff0c;每个用户每个已安装的APP一行记录&#xff0c;且数据模型对应AppFromMySQL。迁移到MongoDB中&#xff0c;我们想更好的利用MongoDB的优势&a…

ASP.NET Core - 关于标签帮助器值得了解的五点

如果您开发过ASP.NET Core Web应用程序&#xff0c;您应该已经熟悉了标签帮助器。ASP.NET Core应用程序依赖标签帮助器来呈现表单和表单字段是很常见的。所以&#xff0c;一个视图通常包含许多标签帮助器以及标准的HTML标记。您可以通过多种方式使用标签帮助器来提高开发的效率…

存储过程示例整理

--列出服务器上所有的数据库 exec sp_databases--改数据库的名字 exec sp_renamedb QQDB, QQ--查看表users中的列 exec sp_columns users《此组件已作为此服务器安全配置的一部分而被关闭》的解决办法use master exec sp_configure show advanced options,1 --显示高级配置信息…

如何使用MAT进行JVM内存泄露分析

转载自 如何使用MAT进行JVM内存泄露分析 在《Java Agent的隔离实现以及卸载时一些坑》中&#xff0c;卸载Agent之后&#xff0c;使用 jmap-histo:live pid命令验证执行FGC&#xff0c;相关Class是否会被回收&#xff0c;结果遇到了一些问题&#xff0c;最终通过MAT内存分析才…

Ribbon 客户端负载均衡

文章目录零、懒汉式改为饿汉式一、基于配置文件二、基于Bean配置三、自定义规则1 权重优先调用2 集群优先调用3 元数据优先调用零、懒汉式改为饿汉式 【consumer-springboot-80子模块】 Ribbon默认使用懒汉式加载服务列表&#xff0c;更改为懒汉式 application.yml ribbon: …

C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码

.NET core2.0 发布了,刺激,大致看了一下,很不错,打算后期学习.(不出意外,应该也会写个小系列). 虽然官方推荐用共享类库创建新的类库..然而我这个Demo还是使用的可移植.. 嗯..解释一下 为什么暂时没用共享类库.. 有些小BUG 可能是为了迎合其他类型的项目..所以在共享类库里创…

“老师,我不要苹果味的,我要葡萄味的”!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。题库四班目前题库正在维护中&#xff0c;工作量最大的莫过于题库里面的题量了&#xff0c;所以目前的解决方法是让动员大家一起出题&#xff0c;但是人多较杂&#xff0c;各种各样的题都有&#xff08;…

一次频繁Full GC的排查过程,根源居然是它...

转载自 一次频繁Full GC的排查过程&#xff0c;根源居然是它... 业务部门的一个同事遇到个奇怪的 Full GC 问题&#xff0c;有个服务迁移到新的应用后&#xff0c;一直频繁 Full GC。新应用机器的配置是 4c 8g&#xff0c;老应用是 4c 4g&#xff0c;老应用 GC 都很正常&…

jzoj1158-荒岛野人【扩欧,gcd,同余方程】

正题 大意 有n个野人&#xff0c;每个野人有一个初始山洞CiCi&#xff0c;每次向前移动距离PiPi&#xff0c;寿命LiLi&#xff0c;如果野人走到了最后一个山洞那么继续就好回到第一个山洞&#xff0c;求至少多少个山洞才可以让野人们不会发生冲突。 解题思路 我们可以枚举答…

.NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决

今天所有开发环境已经迁移到mac OS下的Visual Studio Code 命令行编译发布&#xff0c;而运行服务器是CentOS7&#xff0c;和windows没什么关联了。 只要你Relese编译并在本地有一个与服务器相同的运行环境中运行成功了&#xff0c;迁移到真实服务器不会有什么难度。 下面是迁…

“老师,我写着写着就 强制交卷了……”

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。01暴露出的问题

张老师讲Python~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。最近我的个人站上线啦&#xff0c;欢迎大家访问http://穆雄雄.com&#xff1b;或者点击文末的“阅读原文”。昨天下午靳老师分享了关于网站部署的内容&#xff0c;今天下午请张炜林上去分享了下他准…

Entity Framework Core 2.0 新特性

一.模型级查询过滤器&#xff08;Model-level query filters&#xff09; ef core2.0包含了一个新特性&#xff0c;我们叫他模型级查询过滤器&#xff08;Model-level query filters&#xff09;。此特性允许使用Linq查询表达式直接定义在实体类型的元数据模型上。这样的过滤器…

激动的时刻,终于成啦~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;【雄雄的小课堂】。今天&#xff0c;最令我激动的一件事莫过于倾注一周精力的“在线测试”终于可以投入使用了&#xff0c;周二发过一篇文章&#xff0c;是关于在线测试的问题总结&#xff0c;也就是在周二&a…

C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码

今天的学习内容? 今天我们讲讲Xamarin中的MVVM双向绑定,嗯..需要有一定的MVVM基础.,具体什么是MVVM - -,请百度,我就不多讲了 效果如下: 正文 1.简单的入门Demo 这个时间的功能很简单,就是一个时间的动态显示. 我们首先创建一个基础的页面如下: <?xml version"…

由「Metaspace容量不足触发CMS GC」从而引发的思考

转载自 由「Metaspace容量不足触发CMS GC」从而引发的思考 某天早上&#xff0c;毛老师在群里问「cat 上怎么看 gc」。 好好的一个群 看到有 GC 的问题&#xff0c;立马做出小鸡搓手状。 之后毛老师发来一张图。 老年代内存占用情况 图片展示了老年代内存占用情况。 第一个…

是现在的钱不值钱还是药太贵!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。莫名其妙的就感觉身体不舒服&#xff0c;然后越来越严重&#xff0c;打小以来还是第一次遇见这样的&#xff0c;你说是感冒吧&#xff0c;它也不流鼻涕&#xff0c;喉咙也不痛&#xff0c;鼻子也通…