【jzoj】2018/2/2 NOIP普及组——D组模拟赛
前言
今天五道题,难度做起来感觉很难,其实就是纸老虎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组模拟赛相关推荐
- 【jzoj】2018.1.31 NOIP普及组——D组模拟赛
前言 今天题目比较水and我进了C组,不过太太太太太太太太太太太太太太太太绝望了QAQ.所以我也没有做C组的题.写完博客我就做O(∩_∩)O. 正题 题1:奇数统计(jzoj1547) 就是输入n个数 ...
- 【jzoj】2018.2.1 NOIP普及组——D组模拟赛
前言 懒- 正题 题1:牛车(jzoj1390) 有m条公路,有n头牛各开一辆车,如果有x辆车开在它前门,它速度就会降低d*x,路上速度至少为l.求有多少头牛可以上路. 输入 第1行: 4个空格隔开的 ...
- JZOJ __Day 3:【NOIP普及模拟】求和(sum)
题目描述 小x有很多糖果,分成了 N 堆,排成一列.小x说,如果小y能迅速求出第 L 堆到第 R 堆一 共有多少糖果,就把这些糖果都给他. 现在给出每堆糖果的数量,以及每次询问的 L 和 R,你需要帮 ...
- 2021牛客NOIP提高组OI赛前模拟赛第一场T2——牛牛和数组操作(区间dp)
牛牛和数组操作 description solution code description [题目描述] 有n + 2个整数a0, a1, . . . , an, an+1, a0 = an+1 = ...
- tower(普及组多校模拟赛)
题目 欲穷千里目,更上一层楼. 阿克先生喜欢旅游.某一天,他来到魔法森林旅游. 经过观察,他发现魔法森林一共有 n 个城市,每个城市有一座高高的魔法塔,第i 个城市的魔法塔的高度为 hi.这些城市一共 ...
- 牛客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 ...
- 第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组-线上模拟赛-第一题-数据类型检测
第一题-数据类型检测 这是检测输入数据类型的题目,考法在于掌握对数据类型的检测. 看到了很多题解是使用typeof和instanceof 来进行检测.因为这种关键字的检测类型个数都有限. 因此需要结合 ...
- JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组
本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...
- NOIP普及组历届真题(1997~2018)
供大家刷题. 先上快捷的查看方式:NOIP普及组历届真题 第二页 来自洛谷--一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题. P1002 过河卒 NOIp普及组 2002 普及- P100 ...
最新文章
- python打印万年历_python青苔计划(六)打印万年历
- 三星gtn8010安卓7_三星Galaxy Note 10.1 N8010 最后的救赎 Andorid 5.0.2 ROM
- 浮动导航栏php源码,JQuery 浮动导航栏实现代码
- 深度学习模型创建dataset
- Canvas 通过改变渐变色渐变百分比位置做飞线效果
- Java旅游管理系统本科生毕业设计开题报告
- 最简单的方法教你装matpower
- 通过管道方式(CreatePipe)获取DOS命令行执行后的返回结果
- SOLD2算法详解之1 backbone(CVPR2021 源码解析)
- 使用React Native可以开发Window桌面应用了!
- python自动排版_你熟悉Python的代码规范吗?如何一键实现代码排版
- 爬取电影天堂的最新电影
- c语言表示静态存储类别的关键字是,在C语言中,表示静态存储类别的关键字是:...
- IEEE Geoscience and Remote Sensing Letters (GRSL)从投稿到录用过程分享
- Java开源Web框架
- js 实现图片点击放大功能(组图)
- 项目场景:对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法
- python求10以内的素数_python 求100以内的素数
- Python+Selenium,让浏览器自动帮你下文献
- emeditor编辑html,EmEditor教程、EmEditor怎么配置详细图文教程
热门文章
- php 命名空间(,PHP命名空间(Namespace)简明教程
- mysql在线快速修改密码_MySQL修改密码的几种方式
- oracle 查看用户状态,Oracle数据库查看用户状态
- php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
- leetcode300. 最长递增子序列
- 7-16 一元多项式求导 (20 分)(详解+题目分析)
- [Java基础]IO流小结
- [C++STL]C++实现list容器
- [剑指offer]面试题41:和为s的两个数字VS和为s的连续正数序列
- [剑指offer]面试题7:用两个栈实现队列