前言

懒…

正题


题1:牛车(jzoj1390)

有m条公路,有n头牛各开一辆车,如果有x辆车开在它前门,它速度就会降低d*x,路上速度至少为l。求有多少头牛可以上路。


输入

第1行: 4个空格隔开的整数N,M,D,L
第2..N+1行: 第i+1行描述第i头牛的起初车速。

输出

第一行: 输出一个整数表示最多可以在高速上行驶的牛车数量。

样例输入

3 1 1 5
5
7
5

样例输出

2


贪心,一行一行的从小到大塞牛


代码

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,d,l,a[50001],s,num[50001],j;
int main()
{scanf("%d%d%d%d",&n,&m,&d,&l);for (int i=1;i<=n;i++) scanf("%d",&a[i]);//输入sort(a+1,a+1+n);//排序for (int i=1;i<=n;i++){for (j=1;j<=(n-1)/m+1;j++)//最多可以塞几头牛{if (a[i]-d*(j-1)>=l && num[j]<m)//寻找位置{num[j]++;break;}//塞}if (j<=(n-1)/m+1) s++;//塞入}printf("%d",s);//输出
}

题2:危险系数(jzoj1391)

有n个岛屿,要按顺序到达m个岛屿(可以重复或不连续),已知每个岛之间的危险系数。求最小危险系数。


输入

第1行: 两个数, N 和 M
第 2..M+1行: 第i+1行表示给定的序列中第i个岛屿A_i
第M+2..N+M+1行:每行N个整数,表示岛屿之间的危险系数,对角线上一定是0。

输出

输出满足要求的最小危险系数

样例输入

3 4
1
2
1
3
0 5 1
5 0 2
1 2 0

样例输出

7


最短路,因为要求每个点的所以用Floyd算法(反正数据小)


代码

#include<cstdio>
#include<iostream>
using namespace std;
int n,m,f[10001],a[101][101],s;
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=m;i++) scanf("%d",&f[i]);for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)scanf("%d",&a[i][j]);for (int k=1;k<=n;k++)for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)if (i!=j && i!=k && j!=k){a[i][j]=min(a[i][j],a[i][k]+a[k][j]);}//Floyd算法for (int i=2;i<=m;i++){s+=a[f[i-1]][f[i]];//计算距离}printf("%d",s);
}

题目3:前缀转后缀(jzoj1590)

输入一个前缀表达式,转成后缀表达式


输入

输入一个前缀表达式,运算符只有“+”和“-”,操作数都是只有1个位数字(0到9),运算符和操作数之间都用一个空格隔开,表达式没有前导空格。每个表达式都是合法的,并且运算符不超过20个。

输出

输出对应的后缀表达式。

样例输入

1

样例输出

1



如图建立一颗树,求出他的后序遍历就好了。这里不难发现,只有符号后才有分支(两个)。


代码

#include<cstdio>
#include<cstring>
using namespace std;
struct point{int son1,son2;
};
point tree[201];
int m,n;
char c[201];
int buld(int x)//建树
{m++;//位置if (c[x]=='+' || c[x]=='-')//符号{tree[x].son1=buld(m+1);//分支tree[x].son2=buld(m+1);//分支return x;}else {tree[x].son1=-1;tree[x].son2=-1;//数字没有分支return x;}
}
int print(int x)//后序遍历输出
{if (tree[x].son1!=-1) print(tree[x].son1);if (tree[x].son2!=-1) print(tree[x].son2);printf("%c ",c[x]);
}
int main()
{//freopen("j4.in","r",stdin);//freopen("j4.out","w",stdout);n=0;char w;while ((c[++n]=getchar())!='\n') {w=getchar();if (w=='\n') break;}//读入n--;buld(1);print(1);
}

题目4:游戏(jzoj1591)

有4种材料,ABCD。每种材料有一定数量,以下情况可以产生反应:
AABDD
ABCD
CCD
BBB
AD
两个人轮流取材料,直到有人无法产生反应为止就输了。两个人是聪明绝顶的人。
求胜者


输入

第一行输入一个整数N(1<=N<=100),表示游戏次数,接下来N行,每行四个整数,分别表示游戏开始时A,B,C,D四种材料的数量。假设一开始每种材料的数量都在0到60之间。

输出

对于每次游戏输出赢者的名字。

样例输入

6
0 2 0 2
1 3 1 3
1 5 0 3
3 3 3 3
8 8 6 7
8 8 8 8

样例输出

Roland
Patrick
Roland
Roland
Roland
Patrick


这里用记忆化搜索模拟情况,然后用返回确定胜者。


代码

#include<cstdio>
using namespace std;
int w[5][4]={{2,1,0,2},{1,1,1,1},{0,0,2,1},{0,3,0,0},{1,0,0,1}};//预处理情况
int f[61][61][61][61],a,b,c,d,n;
int dfs(int a,int b,int c,int d)
{if (f[a][b][c][d]!=0) return f[a][b][c][d];//记忆化搜索for (int i=0;i<5;i++){if (a>=w[i][0] && b>=w[i][1] && c>=w[i][2] && d>=w[i][3])//如果可以取{if (dfs(a-w[i][0],b-w[i][1],c-w[i][2],d-w[i][3])==2)//搜索{f[a][b][c][d]=1;//记忆return 1;}}}f[a][b][c][d]=2;//记忆return 2;
}
int main()
{//freopen("j5.in","r",stdin);//freopen("j5.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d%d%d%d",&a,&b,&c,&d);if (dfs(a,b,c,d)==2) printf("Roland\n");else printf("Patrick\n");//输出}
}

【jzoj】2018.2.1 NOIP普及组——D组模拟赛相关推荐

  1. 【jzoj】2018/2/2 NOIP普及组——D组模拟赛

    前言 今天五道题,难度做起来感觉很难,其实就是纸老虎233. 正题 题目1:公牛数学(jzoj1896) 就是高精乘 输入 第1..2行:每行包含一个十进制数 输出 第1行:输出两个数乘积 样例输入 ...

  2. 【jzoj】2018.1.31 NOIP普及组——D组模拟赛

    前言 今天题目比较水and我进了C组,不过太太太太太太太太太太太太太太太太绝望了QAQ.所以我也没有做C组的题.写完博客我就做O(∩_∩)O. 正题 题1:奇数统计(jzoj1547) 就是输入n个数 ...

  3. JZOJ __Day 3:【NOIP普及模拟】求和(sum)

    题目描述 小x有很多糖果,分成了 N 堆,排成一列.小x说,如果小y能迅速求出第 L 堆到第 R 堆一 共有多少糖果,就把这些糖果都给他. 现在给出每堆糖果的数量,以及每次询问的 L 和 R,你需要帮 ...

  4. 2021牛客NOIP提高组OI赛前模拟赛第一场T2——牛牛和数组操作(区间dp)

    牛牛和数组操作 description solution code description [题目描述] 有n + 2个整数a0, a1, . . . , an, an+1, a0 = an+1 = ...

  5. tower(普及组多校模拟赛)

    题目 欲穷千里目,更上一层楼. 阿克先生喜欢旅游.某一天,他来到魔法森林旅游. 经过观察,他发现魔法森林一共有 n 个城市,每个城市有一座高高的魔法塔,第i 个城市的魔法塔的高度为 hi.这些城市一共 ...

  6. 牛客NOIP2021提高组OI赛前模拟赛第一场T3——与巨(数学)

    与巨 description solution code description [题目描述] 定义无穷序列f:f1=1,fn=fn−1∗2+1f:f_1=1,f_n=f_{n-1}*2+1f:f1​ ...

  7. 第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组-线上模拟赛-第一题-数据类型检测

    第一题-数据类型检测 这是检测输入数据类型的题目,考法在于掌握对数据类型的检测. 看到了很多题解是使用typeof和instanceof 来进行检测.因为这种关键字的检测类型个数都有限. 因此需要结合 ...

  8. JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组

    本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...

  9. NOIP普及组历届真题(1997~2018)

    供大家刷题. 先上快捷的查看方式:NOIP普及组历届真题 第二页 来自洛谷--一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题. P1002 过河卒 NOIp普及组 2002 普及- P100 ...

最新文章

  1. vs2008断点上出现感叹号解决办法
  2. Filebeat常用配置
  3. VMware View 与 Citrix Xendesktop 管理大比拼
  4. 2017-2018-2 20165329 实验五 网络编程与安全
  5. 如何让IOS中的文本实现3D效果
  6. 请设计各种管理系统、业务系统的大哥大姐们,设计新系统时,拜托您,请允许我修改用户名、密码...
  7. Linux实现的IEEE 802.q VLAN
  8. Nginx实现HTTP反向代理配置
  9. 笨办法学 Python · 续 练习 9:`sed`
  10. android 距离感应器控制屏幕熄灭_书房大变身!有格调的屏幕挂灯,加了它桌面秒变神仙颜值...
  11. 【车间调度】基于matlab遗传算法求解车间调度问题【含Matlab源码 1396期】
  12. HTML5网络视频webm格式制作
  13. 有没有安卓4.0的java模拟器_手机java模拟器apk下载
  14. 大学计算机实验基础第二版,大学计算机基础实验指导(第2版)
  15. Buct oj 1015
  16. Python3.X使用Cython调用C/C++
  17. 为什么卷积层不加bias
  18. 台式计算机的电流是多少安,电脑usb支持瞬间电流是多大?
  19. 安规之电气间距和爬电距离
  20. java编程思想读书笔记

热门文章

  1. 上传html 0字节,HTML ajax 上传文件限制文件的类型和文件大小
  2. 百度云cdn设置州五年制大专_[百度云CDN]配置过程坑点集合
  3. 计算数字的出现次数 java_关于Java:如何计算数字在.txt文件中出现的次数
  4. 如何区分netty是udp还是tcp_鲜奶粉还是大包粉,到底该如何区分?
  5. 二叉树的几道相似简单递归题
  6. [PAT乙级]1038 统计同成绩学生
  7. Zjnu Stadium HDU - 304 加权并查集
  8. Zookeepe实践与应用--分布队列
  9. 博途plc连接电脑_PLC报错,电脑连接不了PLC
  10. python二维数组遍历输出每行最大值_如何在二维数组中找到每行的最大值?