NOIP 模拟赛
Day 1
题目名称LGTB 玩扫雷LGTB 学分块LGTB 打THD
英文代号mine divide thd
时限1 秒1 秒1 秒
输入文件mine.in divide.in thd.in
输出文件mine.out divide.out thd.out
内存限制64Mb 64Mb 64Mb
测试点个数10 10 20
总分100 100 100
时间:2014 年10 月4 日
1
LGTB 玩扫雷
在一个n m 的棋盘上,有位置上有雷(用“*” 表示),其他位置是空地(用“.” 表示)。
LGTB 想在每个空地上写下它周围8 个方向相邻的格子中有几个雷。
请帮助他输出写了之后的棋盘
输入
输入第一行包含两个整数n, m 代表棋盘大小
接下来n 行,每行m 个字符,代表棋盘
1 n,m 1000
输出
输出包含n 行,每行m 个字符,代表LGTB 写了数字之后的棋盘
样例
样例输入样例输出
3 3
*.*
...
*.*
*2*
242
*2*
2
LGTB 学分块
LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块
今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空。假设3 块各
自的和中的最大值最小
请输出分完之后3 块中的最大值
输入
输入第一行包含一个整数n 代表数组大小
接下来n 个整数a1, a2, ..., an,代表数组
对于40% 的数据,1 n 10
对于70% 的数据,1 n 103
对于100% 的数据,1 n 105, 1 ai 107
输出
输出包含1 个整数,代表分块完成后3 块中的最大值
样例
样例输入样例输出
10
2 5 1 4 7 3 6 2 5 1
14
3
LGTB 玩THD
LGTB 最近在玩一个类似DOTA 的游戏名叫THD
有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面
每个小兵有一定的血量hi,杀死后有一定的金钱gi
每一秒,他都可以攻击任意一个活着的小兵,对其造成P 点伤害,如果小兵的血量低于1 点,小兵死亡,他
得到金钱。他也可以不攻击任何小兵。
每一秒LGTB 攻击完毕之后,塔会攻击距离塔最近的一个活着的小兵,对其造成Q 点伤害,如果小兵的血
量低于1 点,小兵死亡,LGTB 不会得到金钱
现在LGTB 想知道,在他选择最优策略时,他能得到多少钱。
输入
输入第一行包含3 个整数P, Q, N
接下来N 行,每行包含2 个整数hi, gi
第i 个小兵和塔之间的距离为i
输入的意义如题面所示
对于20% 的数据,1 N 4
对于50% 的数据,1 N 20
对于100% 的数据,20 P,Q 200, 1 N 100, 1 hi 200, 0 gi 106
输出
输出包含一个整数W,代表LGTB 最多能获得的金钱
样例
样例输入样例输出
20 60 3
80 100
80 200
120 300
500
4

  1. #include<fstream>
  2. using namespace std;
  3. char a[][];
  4. const int d[][]={{-,},{-,},{,},{,},{,},{,-},{,-},{-,-}};
  5. int n;int m;
  6. int main(){
  7. ifstream fin("mine.in");
  8. ofstream fout("mine.out");
  9.  
  10. fin>>n>>m;
  11.  
  12. for(int i=;i<=n;i++)
  13. for(int j=;j<=m;j++)
  14. fin>>a[i][j];
  15.  
  16. for(int i=;i<=n;i++)
  17. for(int j=;j<=m;j++){
  18. if(a[i][j]=='.'){
  19. a[i][j]='';
  20. for(int k=;k<;k++){
  21. int h=i+d[k][];
  22. int p=j+d[k][];
  23. if(a[h][p]=='*')a[i][j]++;
  24. }
  25. }
  26. }
  27.  
  28. for(int i=;i<=n;i++)
  29. fout<<&a[i][]<<endl;
  30. return ;
  31. }
  1. #include<fstream>
  2. using namespace std;
  3. class divide{
  4. public:
  5. static long long binary_divide(long long * ps,int L,int R){
  6. int lft=L;int rght=R;
  7. long long best=1e12;
  8. while(lft<rght){
  9. int m=(lft+rght)>>;
  10. long long s1=ps[m]-ps[L-];
  11. long long s2=ps[R]-ps[m];
  12. long long t=max(s1,s2);
  13. if(t<best)best=t;
  14. if(s1==s2)break;
  15. if(s1<s2)lft=m+;
  16. else rght=m;
  17. }
  18. return best;
  19. }
  20. };
  21. int n;int a[];
  22. long long ps[];
  23. long long ans=1e12;
  24. int main(){
  25. ifstream fin("divide.in");
  26. ofstream fout("divide.out");
  27. fin>>n;
  28.  
  29. for(int i=;i<=n;i++)
  30. fin>>a[i];
  31.  
  32. if(n==){
  33. fout<<a[]<<endl;
  34. return ;
  35. }
  36.  
  37. if(n==){
  38. fout<<max(a[],a[])<<endl;
  39. return ;
  40. }
  41.  
  42. if(n==){
  43. fout<<max(a[],max(a[],a[]))<<endl;
  44. return ;
  45. }
  46.  
  47. for(int i=;i<=n;i++)
  48. ps[i]=ps[i-]+a[i];
  49.  
  50. for(int i=;i<n;i++){
  51. long long s1=ps[i];
  52. long long s2=divide().binary_divide(ps,i+,n);
  53. long long t=max(s1,s2);
  54. if(t<ans)ans=t;
  55. }
  56.  
  57. fout<<ans<<endl;
  58. return ;
  59. }
  1. #include<fstream>
  2. #include<algorithm>
  3. using namespace std;
  4. const int bld=;
  5. const int scr=;
  6. class thd{
  7. public:
  8. static void dynamicProgramming(int (* soldier)[],int (*m)[],int n,int p,int q){
  9. for(int i=;i<=n;i++)
  10. fill(m[i],m[i]+,-1e9);
  11. m[][]=;
  12. for(int i=;i<=n;i++){
  13. int * s=soldier[i];
  14. int t=(s[bld]+q-)/q;
  15. int h=(s[bld]-q*t+q+p-)/p;
  16. for(int j=;j<=;j++){
  17. if(j-t>=)m[i][j]=m[i-][j-t];
  18. if(j+h-t+>=&&(m[i-][j+h-t+]+s[scr])>m[i][j]){
  19. m[i][j]=m[i-][j+h-t+]+s[scr];
  20. }
  21. }
  22. }
  23. }
  24. };
  25.  
  26. int soldier[][];
  27. int m[][];
  28. int n;int p;int q;int best=-1e9;
  29. int main(){
  30. ifstream fin("thd.in");
  31. ofstream fout("thd.out");
  32. fin>>p>>q>>n;
  33. for(int i=;i<=n;i++)
  34. fin>>soldier[i][bld]>>soldier[i][scr];
  35. thd().dynamicProgramming(soldier,m,n,p,q);
  36.  
  37. for(int i=;i<=;i++)
  38. if(m[n][i]>best)best=m[n][i];
  39.  
  40. fout<<best<<endl;
  41. return ;
  42. }

explanation

m[i][j]means kill soldier i with j attacktion remain.

NOIP simulation的更多相关文章

  1. Solution Set - 神奇 NOIP 模拟赛

    \[\mathfrak{\text{Defining }\LaTeX\text{ macros...}}\newcommand{\vct}[1]{\boldsymbol{#1}}\newcommand ...

  2. NOIP模板整理计划

    先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...

  3. NOIp 11.11/12

    最后一场比较正式的NOIp模拟赛,写一发小总结.题目没什么好说的,大部分很简单,先贴一下代码. 1111 T1 //string //by Cydiater //2016.11.11 #include ...

  4. NOIp 1109

    停课后的第一场模拟赛,应该不会怎么说今天的模拟赛,除了第一题不知道那种筛法的复杂度是$log$的没敢写,其他都挺水的.另外,第三题的数据也弱化了,建议去这里再交一遍. 贴一下AC代码,有兴趣可以参考一 ...

  5. NOIp 2016 总结

    NOIp 2016 总结 -----YJSheep Day 0 对于考前的前一天,晚自习在复习图论的最短路和生成树,加深了图的理解.睡得比较早,养足精力明日再战. Day 1 拿到题目,先过一边,题目 ...

  6. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  7. [杂谈]冲NOIP一等奖。。

    唉不想多说了. 真是一段“传奇”的经历啊. 还是那句话..“是的我上次什么都没说就走了...”这次也一样. 我还是太单纯的以为我们是肯定能够参加北大的夏令营的..然而结果真是意料之外啊. 本来我以为我 ...

  8. 【最后的抒情】【离NOIP还有9个小时】

    学了NOIP 大概十一个月左右,中途的插班生.从2015年12月底开始学信息竞赛,在寒假的时候还笑着我还有九个月才考试呢,生竞就只有两个月了.没错我是从生物竞赛转过来的.记得当初写申请的时候,写的理由 ...

  9. Ubuntu 配置 no-ip

    安装Python开发依赖包 sudo apt-get install python-dev 配置PIP并安装noipy sudo apt-get install python-pip sudo pip ...

随机推荐

  1. Tomcat集群---Cluster节点配置

    <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. cha ...

  2. jena读取和解析本体文件

    使用jena开发本体应用程序时,首先需要对我们利用本体构建工具,如protege等,构建的本体文件,如owl.rdf等读取并解析得到本体模型.下面给出相应的代码,不对的地方请指正. (基于jena 2 ...

  3. java 蓝桥杯算法提高 矩阵乘法

    思路:根据提示的内容,我们可以得到c[i][j] += a[i][k]*b[k][j],k>=0&&k<s PS:这道题本身不难,但是当我定义A[m][s] B[s][n] ...

  4. Spark会产生shuffle的算子

    去重 def distinct() def distinct(numPartitions: Int) 聚合 def reduceByKey(func: (V, V) => V, numParti ...

  5. NoSuchBeanDefinitionException:No qualifying bean of type found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.

    报错如下: NoSuchBeanDefinitionException:No qualifying bean of type   found for dependency: expected at l ...

  6. 477. Total Hamming Distance总的二进制距离

    [抄题]: The Hamming distance between two integers is the number of positions at which the correspondin ...

  7. Lua与C交换

    1.C调用Lua函数 (1) 首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数 (2)然后是解析并编译lua的代码,这个主要是luaL_dofile函数  (3) ...

  8. Spring.net init-method destroy-method

    <object id="exampleInitObject" type="Examples.ExampleObject" init-method=&quo ...

  9. 一个新手后端需要了解的前端核心知识点之position(一)

    以下内容是基于观看慕课网视频教程总结的知识点,边打代码边总结,符合自己的思维习惯.不是针对新手入门 我做程序的初衷是想做一个网站出来.HTML语言当然重要啊,缺什么就百度什么,很浪费时间,还是好好的打 ...

  10. mosquitto ---配置SSL/TLS linux

    mosquitto ---配置SSL/TLS 摘自: https://www.cnblogs.com/saryli/p/9821343.html 在服务器电脑上面创建myCA文件夹, 如在/home/ ...