前言

今天五道题,难度做起来感觉很难,其实就是纸老虎233。

正题


题目1:公牛数学(jzoj1896)

就是高精乘

输入

第1..2行:每行包含一个十进制数

输出

第1行:输出两个数乘积

样例输入

11111111111111
1111111111

样例输出

12345679011110987654321


解题思路

高精度不讲


代码

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int a1[51],a2[51],a[251],n1,n2,g,w;
void read()
{string s1,s2;cin>>s1>>s2;n1=s1.size();n2=s2.size();for (int i=1;i<=n1;i++) {a1[i]=s1[n1-i]-48;}for (int j=1;j<=n2;j++) {a2[j]=s2[n2-j]-48;}
}
void cons()
{for (int i=1;i<=50;i++){for (int j=1;j<=50;j++){a[i+j-1]+=a1[i]*a2[j]+g;g=a[i+j-1]/10;a[i+j-1]%=10;}}
}
void write()
{w=200;while (a[w]==0) w--;for (int i=w;i>=1;i--){printf("%d",a[i]);}
}
int main()
{//freopen("bullmath.in","r",stdin);//freopen("bullmath.out","w",stdout);read();cons();write();
}

题目2:愤怒的牛(jzoj1897)

有n个不同距离的牛棚,要放入c只牛,使它们之间的最小距离最大。

输入

第1行:两个用空格隔开的数字N和C。
第2~N+1行:每行一个整数,表示每个隔间的坐标。

输出

输出只有一行,即相邻两头牛最大的最近距离。

样例输入

5 3
1
2
8
4
9

样例输出

3


解题思路

用二分法查找答案,用贪心来判断


代码

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,c,a[100001],l,r,k,sum,mins,mid;
int main()
{//freopen("aggr.in","r",stdin);//freopen("aggr.out","w",stdout);scanf("%d%d",&n,&c);for (int i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+1+n);//排序l=0;r=a[n];//范围while (l<=r){mid=(l+r)/2;//二分sum=1;//放入1k=1;//记录上一头牛for (int i=2;i<=n;i++){if (a[i]-a[k]>=mid)//如果距离够{sum+=1;//放牛k=i;//记录}}if (sum<c) r=mid-1;else l=mid+1;//二分}printf("%d",l-1);
}

题目3:约数和(jzoj1401)

输入T组数据,然后输入n,求它的所有约数和。

输入

本题有多组数据,第一行一个T,表示有T组数据,下面T行,每行一个正整数N表示要处理的数。

输出

T行,每行一个正整数表示输入中对应的数的约数和。

样例输入

1
12

样例输出

28


解题思路

用开方优化求约数的枚举过程,用f数组记录重复的


代码

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int x,s,t,w,f[5000001];
int main()
{scanf("%d",&t);for (int ti=1;ti<=t;ti++){scanf("%d",&x);if (f[x]!=0) printf("%d\n",f[x]);//输出else{s=0;w=int(sqrt(double(x)));//优化for (int i=1;i<=w;i++){if (x%i==0) {s+=i;//累加if (x/i!=i)s+=x/i;//去重}}printf("%d\n",s);f[x]=s;//记录}}
}

题目4:旅行(jzoj1402)

一条7000km的路上已经知道有若14个旅馆,分别距离原点
0, 990, 1010, 1970, 2030, 2940, 3060, 3930, 4060, 4970, 5030, 5990, 6010, 7000
还加入了n个旅馆,一辆车每天至少走a km,最多走b km,求旅行方案总数。

输入

第一行输入A,第二行输入B,第三行输入N(0<=N<=20),表示在出发之前又新增N个汽车旅馆,接下来N行,每行一个整数m,表示旅馆离起点的距离(0

输出

输出一共有多少种旅行方案。

样例输入

1
500
0

样例输出

0


解题思路

这里用dp,如果可以加入就累加方案数


#include<cstdio>
#include<algorithm>
using namespace std;
int a,b,n,f[41],s;
int way[41]={0,0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000};
//预处理
int main()
{scanf("%d%d%d",&a,&b,&n);n+=14;for (int i=15;i<=n;i++) scanf("%d",&way[i]);sort(way+1,way+1+n);//快排f[1]=1;              for (int i=2;i<=n;i++){for (int j=1;j<i;j++){if (way[i]-way[j]>=a && way[i]-way[j]<=b){f[i]+=f[j];//dp}}}for (int i=1;i<=n;i++) if (way[i]+b>=7000) s+=f[i];//累加可以到达宾馆的方案printf("%d",f[n]);//输出
}

题目5:逆序统计(1403)

给出n个数字,求出逆序对为k的排列数。

输入

从文件COUNT.IN输入。输入第一行有两个整数N 和K。其中(N<=100,K<=N*(N-1)/2)

输出

将1..N 的逆序对数量为K的特定排列的数量输出到文件COUNT.OUT。为了避免高精度计算,请将结果mod 10000以后再输出!

样例输入

5 3

样例输出

15


解题思路

从两个方向[i][j-1],[i-1][j],然后减去重复


代码

#include<cstdio>
using namespace std;
int n,k,f[101][4951];
int main()
{scanf("%d%d",&n,&k);f[0][0]=1;//初始化for (int i=1;i<=n;i++)for (int j=0;j<=k;j++)if(j)//避免越界{if (i>j) f[i][j]=(f[i-1][j]+f[i][j-1])%10000;//动态转移else f[i][j]=(f[i-1][j]+f[i][j-1]-f[i-1][j-i])%10000;//动态转移}else f[i][j]=f[i-1][j];f[n][k]=(f[n][k]+10000)%10000;//避免负数printf("%d",f[n][k]);
}

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

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

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

  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. 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. python打印万年历_python青苔计划(六)打印万年历
  2. 三星gtn8010安卓7_三星Galaxy Note 10.1 N8010 最后的救赎 Andorid 5.0.2 ROM
  3. 浮动导航栏php源码,JQuery 浮动导航栏实现代码
  4. 深度学习模型创建dataset
  5. Canvas 通过改变渐变色渐变百分比位置做飞线效果
  6. Java旅游管理系统本科生毕业设计开题报告
  7. 最简单的方法教你装matpower
  8. 通过管道方式(CreatePipe)获取DOS命令行执行后的返回结果
  9. SOLD2算法详解之1 backbone(CVPR2021 源码解析)
  10. 使用React Native可以开发Window桌面应用了!
  11. python自动排版_你熟悉Python的代码规范吗?如何一键实现代码排版
  12. 爬取电影天堂的最新电影
  13. c语言表示静态存储类别的关键字是,在C语言中,表示静态存储类别的关键字是:...
  14. IEEE Geoscience and Remote Sensing Letters (GRSL)从投稿到录用过程分享
  15. Java开源Web框架
  16. js 实现图片点击放大功能(组图)
  17. 项目场景:对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法
  18. python求10以内的素数_python 求100以内的素数
  19. Python+Selenium,让浏览器自动帮你下文献
  20. emeditor编辑html,EmEditor教程、EmEditor怎么配置详细图文教程

热门文章

  1. php 命名空间(,PHP命名空间(Namespace)简明教程
  2. mysql在线快速修改密码_MySQL修改密码的几种方式
  3. oracle 查看用户状态,Oracle数据库查看用户状态
  4. php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
  5. leetcode300. 最长递增子序列
  6. 7-16 一元多项式求导 (20 分)(详解+题目分析)
  7. [Java基础]IO流小结
  8. [C++STL]C++实现list容器
  9. [剑指offer]面试题41:和为s的两个数字VS和为s的连续正数序列
  10. [剑指offer]面试题7:用两个栈实现队列