这套题,看到第一题就想到了以前做过的运动鞋那道题,然后就往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. PHP文件操作整理

    三种目录表示: ./     代表当前目录 ../    代表父级目录 /   代表根目录 常用的文件操作函数有 通用读写:                  fpen()  fwrite() fre ...

  2. MongoDB聚合

    --------------------MongoDB聚合-------------------- 1.aggregate():     1.概念:         1.简介             ...

  3. Centos 7服务启动文件

    在Centos 7中,如果要编辑一个脚本服务文件,并使用systemd进行管理,则必须将服务文件命名为/etc/systemd/system/*.service. service unit文件中的选项 ...

  4. CentOS 7 更改网卡名为eth0

    今天用VBOX安装了CentOS7, 但是安装完之后,发现没有ifconfig命令,在网上搜了一下解决办法,在可以连网状态下,输入下面命令即可 然后就可以用ifconfig命令了. 使用ifconfi ...

  5. 201521123107 《Java程序设计》第6周学习总结

    第6周作业-接口.内部类与Swing 1.本周学习总结 2.书面作业 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注 ...

  6. 团队作业8----第二次项目冲刺(beta阶段)5.23

    Day5-05.23 1.每日会议 会议内容: 1.组长林乔桦对昨日的工作进行了总结并且安排今日的任务. 2.潘益靖副组长说明昨日任务的完成情况. 3.组员对昨天的各项工作进行了汇报以及对今天的工作进 ...

  7. 201521123019 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 (1)代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  8. 201521123036 《Java程序设计》第1周学习总结

    本周学习总结 本周的课是Java的入门.了解了Java的发展过程,运用平台,可跨平台的便利性.懂得jdk,jre,jvm的概念及区别.熟悉Java开发工具,掌握java程序的编译执行的详细过程. 书面 ...

  9. 201521123071 《JAVA程序设计》第十四周学习总结

    第14周作业-数据库 1. 本周学习总结 1.1 以你喜欢的方式(思维导图.Onenote或其他)归纳总结多数据库相关内容. 1.使用JDBC将Java程序与数据库连接 1.1注册驱动 Class.f ...

  10. Java课设-购物车系统

    1.团队课程设计博客链接 /[博客链接]http://www.cnblogs.com/yayaya/p/7062197.html 2.个人负责模板或任务说明 1.建立Action类 2.购物车的属性 ...