第一题:

题目描述:

有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸。每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分。现在要你引爆 k 个炸弹,使得得分最大。

解题过程:

1.一开始想到算出每个入度为0的点打掉之后的得分,然后做个堆,从大到小打,但是路径会有重叠的情况,也就是说打掉一条路径后可能会导致另外一条路径的权值发生变化。。

2.然后听到YYL大神一直在说2次BFS,就想到可以倒着来做。。从出度为0的点出发,然后计算路径的权值,然后按权值从大到小来打。

于是算法就出来了:

先做个拓扑序,然后dp计算从点i出发(沿反向边走)的最大权值(d[i]=max{ d[j] (j,i)∈E }+val[i])。然后排个序从大到小来打即可。

3.另外有个发现,STL的vector真的会慢很多,一开始用vector存边就TLE一个点,改成前向星就变成0.3s了。。果然偷懒是有代价的。。。以后还是尽量用前向星好了。

4.另外题目没说不会出现环,虽然数据里没有,所以还要缩点。


第二题:

题目大意:有 n 个石子围成一圈,每个石子都有一个权值 a[i]。给你一次且仅一次取石子的机会,取石子的块数不限,取完后统计得分。现在要使取出的石子得分最大。每个石子的得分计算公式是 a[i]*d,d 表示这个石子到两边被取了的石子的距离和。

解题过程:

1.这题坑。。其实只要取权值最大的两个石头就可以。证明见后面。。

2.我的做法是一开始取权值最大的时候,然后按权值从大到小来取,如果把某个石头插入可以得到更多的分数的话,就把它加入。(把它加入之后会使它两边的石头加的分数减少,只要比较是增加的多还是减少得多即可。)写了个线段树来动态维护某个石头两边的石头是谁。。 然后边上开始讨论为什么只要取权值最大的两个石头就可以。。我还不相信,就随机了几组数据,竟然拍出来都一样,顿时给傻了。。。数学直觉还是不够敏锐呵。

3.关于“只要取权值最大的两个石头就可以”的证明:

假设取石头的顺序是按权值从大到小来取的,如果一个石头的权值是mid,它左边的石头权值是L,右边的石头权值是R;

那么有 L,R>=mid.   再设它和左边的石头的距离为Ld,和右边的石头的距离为Rd,那么选了这个石头可以增加的分数为

(Ld+Rd)*mid。   而左边的石头减少的分数为(Rd+1)*L,右边的石头减少的分数为(Ld+1)*R。显然减少的多。


第三题:

题目大意:

有A,B,C三种物品N个(N<=100)排成一条线,从左往右拿,一开始拿10个(不足10个就全部拿完),然后可以选择ABC中的一种,比如选A,就把手上的A全部装箱,然后再拿相应数量的物品,使得手上始终有10个(或者已经拿完了)。求最少的装箱次数使得N个物品全部装箱。

解题过程:
1.时间不是很够,就直接写了个贪心,根据下面的原则:

A:如果流水线上已经没有某种物品了,且手中还有,那么就先给这种物品装箱。

B:如果没有出现情况A,那么就取手上最多的那种物品。

RP爆发,骗了90分说。。

2.标算是dp,下面copy题解了:

设 f[i][A][B][C]表示前 i-1 个产品在流水线上取出了,当前准备装箱的 10 个产品中,有 A 个 A 类产品,B 个 B 类产品,C 个 C 类产品,此时,我们继续装箱,至少需要多少次才能装箱完毕。
那么通过 f[i][A][B][C]可以正向推出 3 个决策

把A装箱:f[i+A][A’][B+B’][C+C’],其中A’,B’,C’表示流水线上第i到第i+A-1个产品中分别有多少个 A 类,B 类,C 类产品。

把B装箱:f[i+B][A+A’][B’][C+C’],其中A’,B’,C’表示流水线上第i到第i+B-1个产品中分别有多少个 A 类,B 类,C 类产品。

把C装箱:f[i+C][A+A’][B+B’][C’],其中A’,B’,C’表示流水线上第i到第i+C-1个产品中分别有多少个 A 类,B 类,C 类产品。

f[i][A][B][C]=min{f[i+A][A’][B+B’][C+C’],f[i+B][A+A’][B’][C+C’],f[i+C][A+A’][B+B’][C’]}+1;

质量很高的3道题。。回到了二模 (5) day2的感觉。。

二模 (8) day2的更多相关文章

  1. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  2. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...

  3. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  4. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

  5. 二模 (13)day2

    第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...

  6. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  7. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  8. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  9. 二模 (11) day2

    第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...

随机推荐

  1. php flush()刷新不能输出缓冲的原因分析

    在php程序编写中,flush()的使用率还是挺高的,它在网页表现即时信息效果时发挥了极为重要的作用,比如之前写的php实现限制文件下载速度的代码实例,flush()就起了举足轻重的作用,是进度条实现 ...

  2. GFS Google File System(中文翻译)

    Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1. ...

  3. 基本分类方法——KNN(K近邻)算法

    在这篇文章 http://www.cnblogs.com/charlesblc/p/6193867.html 讲SVM的过程中,提到了KNN算法.有点熟悉,上网一查,居然就是K近邻算法,机器学习的入门 ...

  4. Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决

    这两天编程弄Android照相机模块,设置好各种参数后,发现预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°. 我的手机是华为U9200,用的Android4.0.3,后来看到http://www ...

  5. 工作流学习——Activiti流程变量五步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46648139 ***************************************** ...

  6. [转载]最牛B的编码套路

    原文地址:http://www.codeceo.com/article/nb-coding-style.html 这篇文章很不错,推荐给大家看. 最近,我大量阅读了Steve Yegge的文章.其中有 ...

  7. 20160816_Redis一些资料

    1.官网 http://redis.io/ 2.一个教程 http://www.yiibai.com/redis/redis_quick_guide.html 3.快速开始指南(Quick Start ...

  8. Android SQlite详解

    在项目开发中,我们或多或少都会用到数据库.在Android中,我们一般使用SQLite,因为Android在android.database.sqlite包封装了很多SQLite操作的API.我自己写 ...

  9. 双心ping GUI工具1.0

    双心ping GUI工具1.0该软件利用WindowsAPI提供了图形界面的ping程序,同时还可以调用DOS下的ping命令.ping成功后自动加入网址列表框及同目录下的列表文件Pinglist.i ...

  10. img src 使用 base64 图片数据

    img src 使用 base64 图片数据 在网页上显示一张图片通常是 <img src="xxx.png" > 或 <img src="www.ur ...