前言

今天题目比较水and我进了C组,不过太太太太太太太太太太太太太太太太绝望了QAQ。所以我也没有做C组的题。写完博客我就做O(∩_∩)O。

正题


题1:奇数统计(jzoj1547)

就是输入n个数,输出出现次数为奇数的一个数(只有一个)。


输入

第一行是N,下一行有N个正整数。

输出

出现了奇数次的数。

样例输入

9
3 1 2 2 17 1 3 17 3

样例输出

3


桶不解释


代码

#include<cstdio>
#include<iostream>
using namespace std;
int n,a[10001],x,ans;
int main()
{//freopen("count.in","r",stdin);//freopen("count.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d",&x);a[x]++;}   for (int i=1;i<=10000;i++) if (a[i]%2==1) {printf("%d",i);return 0;}
}

相信我不加批注你们也懂不O(∩_∩)O


题2:有理逼近(jzoj1548)


输入

输入文件的第一行为P、N,其中 P、N<30000。

输出

输出文件只有一行,格式为“X/Y U/V”。注意,答案必须是既约的,也就是说分子、分母的最大公约数必须等于1。

样例输入

2 5

样例输出

4/3 3/2


暴枚好像会超时,所以我们先枚举分子,然后从中间开始向两边扩展的搜分母。
在这里感谢朋友提供思路,这里是他的博客:http://blog.csdn.net/sugar_free_mint


代码

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
double p,s1,s2,ss1,ss2,j,k;
int w,n,u;
int main()
{//freopen("rational.in","r",stdin);//freopen("rational.out","w",stdout);scanf("%d%d",&w,&n);p=sqrt(w);//开方u=n/p;//确定中间值s1=-214748364;s2=1;ss1=214748364;ss2=1;//初始化for (double i=1;i<=n;i++){j=u;k=0;while (j+k<=n && j-k>=1){if (p-i/(j+k)>0 && p-i/(j+k)<p-s1/s2)//判断{s1=i;s2=(j+k);}if (p-i/(j-k)>0 && p-i/(j-k)<p-s1/s2){s1=i;s2=(j-k);}if (i/(j+k)-p>0 && i/(j+k)-p<ss1/ss2-p){ss1=i;ss2=(j+k);}if (i/(j-k)-p>0 && i/(j-k)-p<ss1/ss2-p){ss1=i;ss2=(j-k);}k++;}//扩展}s1=int(int(s1)/__gcd(int(s1),int(s2)));s2=int(int(s2)/__gcd(int(s1),int(s2)));//约分ss1=int(int(ss1)/__gcd(int(ss1),int(ss2)));ss2=int(int(ss2)/__gcd(int(ss1),int(ss2)));//约分printf("%.lf/%.lf %.lf/%.lf",s1,s2,ss1,ss2);//输出
}

题目3:活动安排(jzoj1549)

有n (n<=100) 个活动,每个活动开始时间si,结束时间fi。每个活动需要一个会场,求需要的最小会场数。水题。


输入

第一行是活动数n(1≤n≤100)。
以后的n行,每行两个整数,分别表示n个活动的开始时间si和结束时间fi(1≤i≤n),si

输出

一个整数,表示需要的最少会场数。

样例输入

4
1 8
2 5
7 15
5 9

样例输出

3


判断当前有没有空的会场,如果有就把活动安排进去,不然就开一个新的。


代码

#include<cstdio>
using namespace std;
int s[101],f[101],n,t,w,wf[101];
int main()
{//freopen("meet.in","r",stdin);//freopen("meet.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d%d",&s[i],&f[i]);for (int i=1;i<n;i++)for (int j=i+1;j<=n;j++)if (s[i]>s[j]){t=s[i];s[i]=s[j];s[j]=t;t=f[i];f[i]=f[j];f[j]=t;}//看我连快排都懒得用了for (int i=1;i<=n;i++){for (int j=1;j<=w;j++)if (s[i]>=wf[j])//有空会场{wf[j]=f[i];f[i]=-1;break;}if (f[i]!=-1)//安排新会场{w++;wf[w]=f[i];//活动结束时间}}printf("%d",w);//输出
}

题目4:最小步数(jzoj1550)

一条路长n,每走到一个格会获得Ai元(-10000<=Ai<=10000),你也可以选择花100元跳过该格,金币不可以为负数。求到终点最小的步数


输入

共有两行。
第一行为整数N(0<=N<=100)。
第二行有N个整数,第K个数为A[K],-10000<=A[K]<=10000,。

输出

一个整数,表示需要走的最少步数。若无法走到终点,输出-1。

样例输入

6
30 30 30 30 30 30

样例输出

5


这里dp,其实记搜也可以过(不过不重要)。然后用f[i][j]来表示到达第i格用j步并且最后一步是过的最大金币,然后用f[i][j]来表示到达第i格用j步并且最后一步是过的最大金币。
动态转移方程:f[i][j]=max(f[i-1][j],f2[i-1][j])-100 (跳过该步)
f2[i][j]=max(f[i-1][j-1],f2[i-1][j-1])+a[i] (走过该步)


代码

#include<cstdio>
#include<iostream>
using namespace std;
int a[101],f[101][101],n,ans,f2[101][101];
int main()
{//freopen("steps.in","r",stdin);//freopen("steps.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d",&a[i]);}   for (int i=1;i<=n;i++)for (int j=0;j<=i;j++) {f2[i][j]=-214748364;f[i][j]=-214748364;}//初始化 for (int i=1;i<=n;i++){for (int j=1;j<=i;j++){if (max(f[i-1][j],f2[i-1][j])-100>=0 && i!=n) f[i][j]=max(f[i-1][j],f2[i-1][j])-100;//跳if (max(f[i-1][j-1],f2[i-1][j-1])+a[i]>=0) f2[i][j]=max(f[i-1][j-1],f2[i-1][j-1])+a[i];//走}}for (int i=0;i<=n;i++) if (f2[n][i]>=0) {printf("%d",i);return 0;}//查找printf("-1");//不能到达
}

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

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

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

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

    前言 懒- 正题 题1:牛车(jzoj1390) 有m条公路,有n头牛各开一辆车,如果有x辆车开在它前门,它速度就会降低d*x,路上速度至少为l.求有多少头牛可以上路. 输入 第1行: 4个空格隔开的 ...

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

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

  4. 2018.12.31 NOIP训练 czy的后宫5(树形dp)

    传送门 题意:给一棵有根树,树有点权,最多选出mmm个点,如果要选一个点必须先选其祖先,问选出来的点权和最大值是多少. 直接背包转移就行了. 代码 转载于:https://www.cnblogs.co ...

  5. 2018.12.31 NOIP训练 czy的后宫6(线性dp)

    传送门 题意简述:给一个nnn个数的数列,你可以把它最多分成mmm段,求每段数之和的最大值的最小值,以及满足这个最小值的时候划分数列的方案数. 思路:第一个问题是二分经典问题,不妨设其答案为limli ...

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

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

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

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

  8. 牛客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​ ...

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

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

最新文章

  1. 记一下uiscrollView不响应协议的问题
  2. 修改域名dns服务器,新网互联域名如何修改DNS设置方法
  3. 网络基础相关知识内容
  4. 教育部拟规定:中小学不得公开学生个人的考试成绩名次
  5. Java中对象的深克隆和浅克隆
  6. proteus 8.4安装教程
  7. C#获取摄像头拍照显示图像
  8. python限制输入数字范围_关于python:如何限制Django模型中数字字段的最大值?
  9. 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题
  10. 数据库索引的概念和分类
  11. android 汉字临摹,学汉字学笔顺APP
  12. 不能说のsecret 5
  13. 4.5 Frank 口语习语前7
  14. border定义不同边框,虚线边框(dashed,dotted),实线边框(solid)
  15. 二维小波变换_小波变换完美通俗讲解系列之 (一)
  16. html水平线段hr标记详解,HTML标记【水平分隔线hr标记的使用】!
  17. Allegro PCB Design GXL (legacy) - Merge Shapes(合并形状)
  18. Geogebra 教程之 01 什么是Geogebra,真的可以提高我们数学水平么?
  19. python用opencv计算汽车间距_计算机视觉:利用OpenCV和Python进行车辆计数详细步调...
  20. 小米智能互联电脑版总是弹出_小米智能互联下载

热门文章

  1. php maximum,解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示...
  2. openlayers地图旋转_OpenLayers的使用---- 一个完全免费开源的地图JS库
  3. 关于c语言的符号常量以下叙述中正确的是,关于C语言的符号常量,以下叙述中正确的是...
  4. JAVA world转图片,将Kinect深度图像转换为真实世界坐标
  5. expsky.php,Typecho漏洞利用工具首发,半分钟完成渗透
  6. 122. 买卖股票的最佳时机 II008(贪心算法+思路)
  7. [蓝桥杯][基础练习VIP]报时助手
  8. 第七届蓝桥杯决赛真题 - 凑平方数-全排列+dfs+set去重
  9. 莫比乌斯反演/容斥 +2020ICPC 江西省大学生程序设计竞赛 A Simple Math Problem
  10. Markdown编译器插入公式的数学符号及字体颜色、背景