这套题,看到第一题就想到了以前做过的运动鞋那道题,然后就往DP这个方向去思考,想来想去每什么思路,然后就去看第二题,第二题一看就是一道最短路的问题,但是它的建图十分困难,

怎么打都不知到该怎么建图,然后又去看第一题,推了一下,发现贪心可以过,因为每层,每次的最小值只可能怎么说呢,就是排好序后的那个头,然后塞进堆里就好了,然后划水暴力第二题10分水过,

一共拿了110分吧,考完后听了wsj的讲解以后发现第二题并不是特别难打,但是又不会,体现出水平还是十分菜。

选择困难症

时间限制: 1 Sec  内存限制: 128 MB
提交: 482  解决: 110
[提交][状态][讨论版]

题目描述

又到吃饭时间,Polo 面对饭堂里琳(fei)琅(chang)满(keng)目(die)的各种食品,又陷入了痛苦的抉择中:该是吃手(jiao)打肉饼好呢,还是吃豆(cai)角(chong)肉片好呢?嗯……又不是天秤座怎么会酱紫呢?
具体来说,一顿饭由M 个不同的部分组成(荤菜,素菜,汤,甜品,饮料等等),Polo 要在每个部分中选一种作为今天的午饭。俗话说的好,永远没有免费的午餐,每种选择都需要有一定的花费。长者常常教导我们,便宜没好货,最便宜的选择估计比较坑爹,可囊中羞涩的Polo 还要把钱省下来给某人买生日礼物,这该怎么办呢?
于是一个折中方案出来了:第K 便宜的组合要花多少钱?这就要靠你了。

输入

第一行两个数M,K,含义如上所述。
接下来M 行,先是一个整数Ai,表示第i 个部分有多少种选择。接下来用空格分开的Ai 个整数表示每种选择的价格。

输出

一行一个整数表示答案。

样例输入

2 2
2 1 3
2 2 2

样例输出

3

提示

【样例解释】
最便宜的选择是第一部分选择1 块钱的,第二部分选择2 块的。但由于第二部分里2 块钱有两种不同的选择,所以第二便宜的总花费仍然是3 块。

这道题是不是和运动鞋很像,的确,但是价格是<=10^8所以不行,空间开不下,时间也不行,离散化也不行,然后发现,每次最优值只会在当前这个部分的价格加上以前的一个“头”来产生,

每次找最小的,然后把后一个加入,这样不就是一个堆的操作吗?然后就ok了。

 #include<cstdio>
 #include<algorithm>
 #include<iostream>
 #include<cmath>
 #include<cstring>
 #include<queue>
 using namespace std;

 typedef pair<int,int>fzy;
 int m,k;
 ][],num[],f[];
 priority_queue<fzy,vector<fzy>,greater<fzy> >q;

 bool cmp(int x,int y){return x<y;}
 int main()
 {
     scanf("%d%d",&m,&k);
     ;i<=m;i++)
     {
         scanf("%d",&num[i]);
         ;j<=num[i];j++)
             scanf("%d",&a[i][j]);
         sort(a[i]+,a[i]+num[i]+,cmp);
     }
     ,i,j;
     ;i<=num[]&&i<=k;i++)
         f[i]=a[][i];
     top=i-;
     ];
     ;i<=m;i++)
     {
         ) continue;
         while (!q.empty()) q.pop();
         ;j<=num[i]&&j<=k;j++)
             q.push(make_pair(f[]+a[i][j],));
         fzy x;
         ;(!q.empty())&&j<=k;j++)
         {
             x=q.top();
             ft[j]=x.first;
             q.pop();
             ]-f[x.second],x.second+));
         }
         top=max(top,j-);
         ;j<=top;j++)
             f[j]=ft[j];
     }
     printf("%d\n",f[k]);
 }

规避

时间限制: 1 Sec  内存限制: 128 MB
提交: 170  解决: 24
[提交][状态][讨论版]

题目描述

2014 年7 月17 日,马来西亚航空MH17 班机执飞阿姆斯特丹史基浦机场飞往吉隆坡国际机场航线时,在乌克兰靠近俄罗斯边界33,000 英尺高空疑受到9K37 山毛榉地对空导弹击落坠毁。事件发生后,汉莎航空、法国航空、土耳其航空、俄罗斯洲际航空、达美航空、英国航空、俄罗斯航空、印度航空、捷特航空和荷兰皇家航空开始禁止班机进入乌克兰东部或全境领空范围。美国航空公司的班机禁止在乌克兰境内飞行,同时UTair 航空、意大利航空和维珍航空也宣布他们的班机将会重新规划航行的路线。英国交通部已经要求该国的班机不要进入乌克兰领空范围。中国民用航空局已要求国内航空公司所有飞越乌克兰的航班绕飞。
作为相关负责人,你需要根据实际情况规划航线规避不安全地区,包括战争区域、危险天气、火山灰和外星人入侵……等。每个不安全区域被标记为一个凸多边形,每个凸多边形相离,你需要规划一条从指定起点到指定终点的航线,要求航线不得进入不安全区域,输出它的最短长度。为了你的方便,起点和终点都是多边形的顶点。

输入

第一行一个整数N 表示不安全区域的数目。
接下来共N 组描述,分别对应每个区域,首先输入一个空行,接下来第一个数num 表示该区域顶点数,接下来共num 个整数对按逆时针方向描述每个顶点。
在描述起点终点前输入空行,然后两个整数S 和T 描述起点和终点。起点为之前读入的总第S 个顶点,终点同理。

输出

一行共一个数表示最短长度,保留4 位小数。

样例输入

2
4
0 0
1 0
1 1
0 1
4
2 2
3 2
3 3
2 3
1 7

样例输出

4.8284

提示

【数据规模和约定】
M 表示顶点总数
对于10%的数据,N=1。
对于30%的数据,N<=2。
对于50%的数据,N<=10,M<=50。
对于100%的数据,N<=100,M<=300,-32768<=读入的坐标<=32767。

这道题就看了一下,没什么特别的思路。

反抗希碧拉系统续

时间限制: 1 Sec  内存限制: 128 MB
提交: 27  解决: 3
[提交][状态][讨论版]

题目描述

虽然一科的反抗行动失败了,但那次行动已使反抗希碧拉系统的观念深入人心,而作为分析官的你也找到了系统的某处漏洞,机会依然存在,你要为下一次反抗做好准备。
直接使用电磁脉冲破坏系统在上次被证明是不可行的,现在只能试图渗透进系统寻找突破口。你现在可以从漏洞监听到中枢中每个单元大脑间的通信,并筛选出其中符合某规则的一些进行更深入的分析。规则可以描述为一个特殊的正则表达式,有如下递归定义:
元素:=“[”+字符集+“]”,表示匹配字符集中的任意一个字符。“+”表示字符串的连接。
表达式:=元素或表达式+表达式或“(”+表达式+“)”+“+”。相连的表达式表示匹配连续的字符。“+”表示前面括号中的内容出现一次或多次。
例如:表达式[a][b]匹配ab;表达式[ab][c]匹配ac 或bc;表达式([a][b])+([c])+可以匹配“abc”、“ababc”、“ababccc”等串。
你的同事决定使用巨型计算机穷举每个符合要求的定长字符串(通信)并分析其性质。你对这种方法持怀疑态度,较长的运算时间以及可能比中枢还大的耗电量必然会引起系统的怀疑。你需要计算有多少满足要求的字符串以估算计算所需时间,你坚信分析正则表达式作为一项分析官必备的技能并不会太困难。

输入

第一行一个字符串,表示该表达式。
第二行一个正整数M 表示穷举的字符串的长度。

输出

一行,仅一个整数,表示符合要求的字符串数量对2^32 取模。

样例输入

[a](([b])+[c]([d])+[ad])+
5

样例输出

2

提示

对于所有数据另外满足以下条件
1:不存在空的[]或()
2:元素中的字符集没有重复字符
3:不存在连续的+,例如(([a])+)+
4: +前一定是),)后一定是+

正解要用ac自动机+矩阵乘法。

NOIP2017SummerTraining0720的更多相关文章

随机推荐

  1. Ext.grid.EditorGridPanel点击单元格添加菜单栏

    1.定义菜单栏需要的全局变量 var khbm; var type; 2.新建一个菜单栏 var smenu = new Ext.menu.Menu({ id:"sMenu", i ...

  2. exjs上传图片异常:com.jspsmart.upload.SmartUploadException: File can't be saved (1120).

    错误: 文件名格式不对:未命??.jpg SmartUpload mySmartUpload = new SmartUpload(); com.jspsmart.upload.File myFile ...

  3. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)

    前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...

  4. el表达式里面fn的用法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp31 头部加入标签库 <%@ taglib prefix=" ...

  5. 201521123025 《Java程序设计》第1周学习总结

    1. 本章学习总结 (1)对JAVA的历史有了初步了解 (2)学会安装JDK和设置JAVA_HOME,PATH,CLASSPATH环境变量 (3)范围:JDK>JRE>JVM 2. 书面作 ...

  6. 201521123051《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  7. Java课程设计-计算器

    1.团队课程设计博客链接 http://www.cnblogs.com/yuanj/p/7072137.html 2.个人负责模块或任务说明 监听器的设置 3.自己的代码提交记录截图 //注册各个组件 ...

  8. 参加IMWebConf 2017 前端开发者大会是什么体验?

    周六作为特邀讲师之一参加了IMWebConf 2017 前端开发者大会的主题演讲,主题为<WebAssembly:面向未来的web开发技术>.本次大会质量非常高,来自国内外的技术专家带了很 ...

  9. [js高手之路]Node.js模板引擎教程-jade速学与实战4-模板引用,继承,插件使用

    一.block 模块复用 把需要复用的模块用block定义 block后面跟上模块的名字,引用一次block 内容就会被复用一次 编译之后的结果: 二,继承模板(extends) 在实际开发中,网站的 ...

  10. lintcode.67 二叉树中序遍历

    二叉树的中序遍历    描述 笔记 数据 评测 给出一棵二叉树,返回其中序遍历 您在真实的面试中是否遇到过这个题? Yes 样例 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3, ...