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

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

第一题  沉迷游戏,伤感情

  1. #include <queue>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7.  
  8. long long t,n,ans,i,c[],last,now,sum[],s;
  9. deque<long long> q;
  10.  
  11. inline long long read()
  12. {
  13. long long ret=,iep=;char ch=getchar();
  14. while (ch<'' || ch>'') {if (ch=='-') iep=-;ch=getchar();}
  15. while (ch>=''&&ch<='') {ret=ret*+ch-'';ch=getchar();}
  16. return ret;
  17. }
  18.  
  19. int main()
  20. {
  21. t=read();
  22. while (t--)
  23. {
  24. n=read();ans=;memset(sum,,sizeof sum);
  25. for (i=;i<=n;i++) s=read(),sum[i]=s+sum[i-];
  26. q.clear();
  27. for (i=;i<=n;i++)
  28. {
  29. c[i]=read();
  30. while (!q.empty() && c[i]<=c[q.back()]) q.pop_back();
  31. q.push_back(i);
  32. }
  33. last=;
  34. while (!q.empty())
  35. {
  36. now=q.front();
  37. q.pop_front();
  38. ans+=(sum[now]-sum[last])*c[now];
  39. last=now;
  40. }
  41. printf("%lld\n",ans);
  42. }
  43. }

第二题  精研白学,减智商

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int n,m,t,x,y,last,i,k,tot;
  7. double f[][],z,a[];
  8.  
  9. struct node{
  10. int x,y;
  11. double z;
  12. }A[];
  13.  
  14. struct edge{
  15. double s[][];
  16. edge operator *(const edge &x) const
  17. {
  18. edge ret;
  19. for (int i=;i<=n;i++)
  20. for (int j=;j<=n;j++){
  21. ret.s[i][j]=;
  22. for (int k=;k<=n;k++)
  23. ret.s[i][j]+=s[i][k] * x.s[k][j];
  24. }
  25. return ret;
  26. }
  27. }mat,map;
  28.  
  29. inline int read()
  30. {
  31. int ret=,iep=;char ch=getchar();
  32. while (ch<'' || ch>'') {if (ch=='-') iep=-;ch=getchar();}
  33. while (ch>=''&&ch<='') {ret=ret*+ch-'';ch=getchar();}
  34. return ret;
  35. }
  36.  
  37. int dfs()
  38. {
  39. last=;
  40. for (i=;i<=n;i++) f[i][]=a[i];
  41. for (i=;i<=n;i++) f[i][(last+)%]=;
  42. for (i=;i<=tot;i++) f[A[i].y][(last+)%]+=f[A[i].x][last%]*map.s[A[i].y][A[i].x]*1.0;
  43. }
  44.  
  45. edge ksm(int x)
  46. {
  47. if (x==) return mat;
  48. edge ret=ksm(x/);
  49. ret=ret*ret;
  50. if (x&) return ret*mat;
  51. return ret;
  52. }
  53.  
  54. int doit()
  55. {
  56. last=;
  57. for (i=;i<=n;i++) f[i][]=a[i];
  58. for (k=;k<=t;k++)
  59. {
  60. for (i=;i<=n;i++) f[i][(last+)%]=;
  61. for (i=;i<=tot;i++) f[A[i].y][(last+)%]+=f[A[i].x][last%]*A[i].z*1.0;
  62. last++;
  63. }
  64. }
  65.  
  66. int main()
  67. {
  68. n=read();m=read();t=read();tot=;
  69. if (n<)
  70. {
  71. for (i=;i<=m;i++)
  72. tot++,A[tot].x=read(),A[tot].y=read(),cin>>A[tot].z,mat.s[A[tot].y][A[tot].x]+=A[tot].z;
  73. map=ksm(t);
  74. for (i=;i<=n;i++) cin>>a[i];
  75. dfs();last++;
  76. for (i=;i<n;i++)
  77. printf("%.6f ",f[i][last%]);
  78. printf("%.6f\n",f[n][last%]);
  79. }
  80. else
  81. {
  82. for (i=;i<=m;i++)
  83. tot++,A[tot].x=read(),A[tot].y=read(),cin>>A[tot].z;
  84. for (i=;i<=n;i++) cin>>a[i];
  85. doit();
  86. for (i=;i<n;i++)
  87. printf("%.6f ",f[i][last%]);
  88. printf("%.6f\n",f[n][last%]);
  89. }
  90. return ;
  91. }

Luogu 魔法学院杯-第二弹(萌新的第一法blog)的更多相关文章

  1. Unity萌新日记—开发小技巧与冷知识(脚本篇)

    在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...

  2. 关于『HTML5』:第二弹

    关于『HTML5』:第二弹 建议缩放90%食用 咕咕咕咕咕咕咕!!1 (蒟蒻大鸽子终于更新啦) 自开学以来,经过了「一脸蒙圈的 半期考试」.「二脸蒙圈的 体测」的双重洗礼,我终于有空肝 HTML5 辣 ...

  3. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  4. 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)

    萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码.  Orz 一样地先放上运行结果: test1 ID : char : 件 w ...

  5. 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)

    萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...

  6. 萌新的IDEA_web开发笔记(未完)

    萌新IDEA_web开发笔记 按兴趣自己搞的网页: http://47.94.140.98:8080/ow_web/my_web/web/ 暂时还没做完. 部署在租的服务器上面,背景视频加载可能有点慢 ...

  7. 『PyTorch』第二弹重置_Tensor对象

    『PyTorch』第二弹_张量 Tensor基础操作 简单的初始化 import torch as t Tensor基础操作 # 构建张量空间,不初始化 x = t.Tensor(5,3) x -2. ...

  8. Trick and Magic(OO博客第二弹)

    代码是设计,不是简单的陈述.而设计不仅要求功能的正确性,更注重设计风格和模式. 真正可以投入应用的程序设计,不是那种无脑的“黑箱”,超巨大的数组,多重循环暴力搜索,成吨全局变量……事实上,在实际应用中 ...

  9. 高并发第二弹:并发概念及内存模型(JMM)

    高并发第二弹:并发概念及内存模型(JMM) 感谢 : 深入Java内存模型 http://www.importnew.com/10589.html, cpu缓存一致性 https://www.cnbl ...

随机推荐

  1. 数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发【转】

    转自:http://blog.csdn.net/hellolwl/article/details/6164449 目录(?)[-] 协议介绍 模块协议介绍 1            命令包格式 2   ...

  2. 【转】Android APK反编译就这么简单 详解(附图)

    转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...

  3. MySQl查询区分大小写的解决办法

    通过查询资料发现需要设置collate(校对) . collate规则: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: ca ...

  4. [Machine-Learning] 熟悉 Matlab 中的 map

    概述 map 的意思是映射,即将一个变量映射到另一个变量. 比如将一个字符串映射为一个数值,那个字符串就是map 的键值(key),数值就是map的数据(value). 由此可以把map理解为一个哈希 ...

  5. 2016年12月28日 星期三 --出埃及记 Exodus 21:23

    2016年12月28日 星期三 --出埃及记 Exodus 21:23 But if there is serious injury, you are to take life for life,若有 ...

  6. SQL Server 取日期时间部分

    在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate() 用DateName()就可以获得相应的年.月.日,然后再把它们连接起来就可以了: ...

  7. 当程序报无法复制dll的时候

    当修改程序后,重新编译项目时经常会碰见"无法复制dll到指定路径"的问题.此时,打开任务管理器,关闭所有JP.VDS开头的进程,再重新编译项目即可

  8. linux @后面的主机名如何修改

    @后面的为linux系统的主机名 临时修改方法:执行 hostname 主机名再执行 bash 永久修改方法:修改配置文件/etc/sysconfig/network修改参数HOSTNAME=主机名永 ...

  9. Java的数据类型

    在JAVA中一共有八种基本数据类型,他们分别是byte.short.int.long.float.double.char.boolean整型其中byte.short.int.long都是表示整数的,只 ...

  10. ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

    问题:ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象. 解决方案:在查询的时候加上AsNoTracking()就ok ...