1006-1008

输出语句的""中,个别字符的表达

注意:

百分号:%%

单引号,双引号,反斜杠:\对应字符

1017-1018

星期几的计算

注意:

(记星期x,后过了n天)

直接将(n+x)再取余——若正好为7的倍数则结果为0

处理:

(n+x-1)%+1

1021-1023

输出n位数(n=个,十,百...)

处理:

取余法:a=(a/10^(n-1))%10 或 直接计算,反向输出,循环取余并输出

1036

计算差值大小,并排序

注意:

要用绝对值

1039

乘方,开n次方

开n次方可以使用 pow(x,1.0/n) 函数实现

1040 白兔的分身术

n=p^k,求p+k最大值

题目描述:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

白兔学会了分身术。

一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成p只白兔。

要求k轮后白兔的总数恰好为n。

要求找到两个正整数p,k,最大化p+k

输入描述:

输入一个正整数n(2<=n<=1018)

输出描述:

输出一个整数,p=k的最大值

思路:

1.循环,依次乘方,遍历各个结果,得最后答案——超时

2.自测,得最终结果均为n+1

3.略去中间所有过程,使直接输出n+1——通过

简易理解:

当n可以k次方(k>1)时,必有p+k<n

而一定存在n=n^1,使p+k=n+1>n

故max=n+1

证明:

易得k=logp(n)

设f(p)=logp(n)+p    (2<=p<=n<=1e18)

求导,可得定义域内单调性为单调递增

故,当p=n时f(p)最大,此时k=1

即当p=n,k=1;时p+k取得最大值

代码:

#include<stdio.h>
#include<math.h>
int main()
{/*long n,s;int i,j,re=0;scanf("%ld",&n);for(i=n;i>=2;i--){for(j=1;(s=pow(i,j))<=n;j++){if(s==n&&re<i+j)re=i+j;}}printf("%ld",re);return 0;*///运行超时,就测试结果而言,max=n+1/*证明:易得k=logp(n)设f(p)=logp(n)+p    (2<=p<=n<=1e18)求导,可得定义域内单调性为单调递增故,当p=n时f(p)最大,此时k=1即当p=n,k=1;时p+k取得最大值*/long n;scanf("%ld",&n);printf("%ld",n+1);return 0;
}

1041 纸牌

题目描述:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小w想和你van纸牌

小w有两张纸牌,两张纸牌上都有相同的正整数n

每一轮一张纸牌上的数都可以减去小于等于另外一张纸牌上的数的数

每一轮只能操作和上轮不同的纸牌

小w想知道三轮之后两纸牌上数字之和的最小值

注意,不能减为负数

输入描述:

第一行1个正整数n。

输出描述:

一行一个整数
表示三轮之后两纸牌上数字和的最小值

思路:

类似1040

证明:

不会

代码:

#include<stdio.h>
int main()
{/*由题意,对应直接思路long long n,a1,a2,a3;int i,j,k;scanf("%lld",&n);int re=2*n;for(i=n;i>=0;i--){a1=n-i;for(j=a1;j>=0;j--){a2=n-j;for(k=0;k<=a1&&k<=a2;k++){a3=a1-k;//不可以用a1=a1-k,后续本循环中a1会被重复调用if(a3+a2<re)//以防a1在调用时值改变,必须另设a3来另外存储计算结果re=a3+a2;}}}printf("%lld",re);return 0;*///超时//经过几组自测,得出规律//就结果而言,re=(n+1)/2    (结果取整)//最终代码long long n;scanf("%lld",&n);printf("%lld",(n+1)/2);//向零取整
//实际情况:当n是偶数时,输出n/2;当n为奇数时,输出(n+1)/2。return 0;
}

1042 石头剪刀布

题目描述:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

Kaiji正在与另外一人玩石头剪刀布。双方各有一些代表石头、剪刀、布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的胜负。胜负规则为:石头赢剪刀、剪刀赢布、布赢石头、相同为平局。每张卡牌至多被使用一次。

已知双方的卡牌数量,问Kaiji最多赢几局?

输入描述:

一行六个数字0 ≤ a, b, c, d, e, f ≤ 50,a,b,c分别表示Kaiji的石头、剪刀、布的牌的数量,d,e,f分别表示此时另一人的石头、剪刀、布的牌的数量。

输出描述:

一个整数表示Kaiji最多赢几局。

代码:

#include<stdio.h>
int main()
{int a,b,c,d,e,f,n1,n2,n3,n;scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);n1=(a<e)?a:e;n2=(b<f)?b:f;n3=(c<d)?c:d;//Kaiji赢最多局,则让其尽可能多的让a与e,b与f,c与d配合n=n1+n2+n3;printf("%d",n);return 0;
}

1043 假动态仙人掌

题目描述:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

珂朵莉想每天都给威廉送礼物,于是她准备了n个自己的本子

她想送最多的天数,使得每天至少送一个本子,但是相邻两天送的本子个数不能相同

珂朵莉最多送几天礼物呢

输入描述:

第一行一个整数n

输出描述:

第一行输出一个整数,表示答案

思路:

最佳分配方式:1,2,1,2,1,2......

一个1,2为一周期,存在不完整周期算作为1

故,re=(n/3)*2+1

代码:

#include<stdio.h>
int main()
{int n,k,re;scanf("%d",&n);k=n%3;if(k==0) re=2*n/3;else re=n/3*2+1;printf("%d",re);return 0;
}

1044 旅游观光

题目描述:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

有n个地方,编号为1->n,任意两个地方有公交车,从i到j的票价为(i+j)mod(n+1),而且这个票可以用无限次,你要把这些地方全部走一遍,问最小花费为多少。可以在任意地方开始和结束。

输入描述:

第一行一个数n

输出描述:

输出一行一个数表示答案

代码:

#include<stdio.h>
int main()
{int n;scanf("%d",&n);//1+n,2+(n-1),...之间搭配票价为0,共有(n+1)/2组[取整](单独剩下的记作1)//组与组之间的同行最少花费1,按2+n,3+(n-1),...搭配,共((n+1)/2-1)组printf("%d",(n+1)/2-1);return 0;
}

1045 [NOIP2002]自由落体

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

题目描述

在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。如下图:

小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。

请你计算出小车能接受到多少个小球。

输入描述:

输入H,S1,V,L,K,n (l<=H,S1,V,L,K,n<=100000)

输出描述:

输出小车能接受到的小球个数。

题目分析:

本质为数学计算题目,分情况讨论并计算。

思路:

由物理公式得 t1(小球落到小车顶部水平面对应时刻), t2(小球落地时刻),x1(最右侧可接收到的对应位移),x2(最左侧可接受到的对应位移)。

开始分情况讨论:具体见代码部分

  1. 小车可接收范围在小球分布范围之外
  2. 小车可接收范围与小球分布范围有重合

代码:

#include<stdio.h>
#include<math.h>
int main()
{double h,s1,v,l,k,t1,t2,x1,x2;int n,re;scanf("%lf %lf %lf %lf %lf %d",&h,&s1,&v,&l,&k,&n);t1=sqrt((h-k)/5);//小球到达小车顶部平面的时刻t1t2=sqrt(h/5);//小球落到地面的时刻t2x1=(s1-t1*v+l);//t1时刻车尾位置(最右端可接收对应位置)x2=(s1-t2*v);//t2时刻车头位置(最左端可接受对应位置)//分情况讨论1,2://情况1,所有小球不在可接收范围内if(x2>n-1+0.00001||x1<-0.00001)re=0;//x2>最右侧小球位置 或 x1<最左侧小球位置时else//情况2,存在小球在接收范围内:{int max,min;//min(最左侧可接受到的小球编号-1)//max(最右侧可接受到的小球编号)//max取值://最右端小球在接收范围内时:if(x1>=n-1-0.00001) max=n-1;//当x1在(floor(x1)+1)的接收范围时,//即(x1-floor(x1))>=0.99999时:
//x1小数点后的数>=0.99999时,会被大于x1的一个整数接收,
//但floor运算会将其归入一个小于x1的整数,
//因此如下情况会对floor运算的结果+1else if(x1-floor(x1)>=0.99999) max=floor(x1)+1;//大多数的一般情况(除去前两种的情况):else max=floor(x1);//min取值://最左端小球在接收范围内时:if(x2<=0.00001) min=-1;//当x2在(floor(x2))的接受范围内时,//即(x2-floor(x2))<=0.00001时:
//x2小数点后的数<=0.00001时,会被floor(x2)接收
//因此floor(x2)无法表示 可以被接受的最小编号-1,即变量min
//因此如下情况会对floor运算的结果-1else if(x2-floor(x2)<=0.00001) min=floor(x2)-1;//大多数的一般情况(除去前两种的情况):else min=floor(x2);//结果=最大编号-(最小编号-1),即max-minre=max-min;}printf("%d",re);return 0;
}

参考的他人的代码思路:

思路1:循环,从0开始,依次判断是否落到接收区间 (x1~x2) 内,如果是,则计数+1(此思路结果准确,容易想到)

思路2:将判断标注换为时间,本质不变

思路3(另一种代码):前半段代码基本一致,但if else{}内容有所改变,如下:

    if(x2>n-1+0.00001||x1<-0.00001)re=0;else{max=(x1<n-1+0.00001)?floor(x1):n;min=(x2>-0.00001)?floor(x2):0;re=max-min;}

不明白为什么就ac了……直观感受这个很不严谨,一些情况并没有讨论到……搞不明白(QAQ)

1047 得不到的爱情

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

题目描述

Chranos是个数学天才。

一天,有一个可爱的小女孩追求Chranos,他知道Chranos最喜欢当且仅当总质量为K克的时候的番茄炒蛋了。她希望通过美食俘获Chranos的胃,这样就一定可以和他在一起了吧!虽然小女孩有无限数量的食材,但是数学王国的番茄和蛋非常特殊,他们的质量分别为N克和M克。为了表现一颗完整的心、表达充足的爱意,所有的食材必须被用完。N和M都是正整数且互素,制作过程中既不会凭空增加质量,也不会凭空消失质量。

Chranos不希望小女孩打扰他学数学。他发现,并不是所有番茄炒蛋都是可以被制作出来的。他想找出最大的不可以被制作出的总质量K来拒绝小女孩,这样Chranos就可以永远和数学在一起了!

输入描述:

第一行为正整数N和M(2≤N,M≤50000)(2 \leq N, M \leq 50000)(2≤N,M≤50000)。

输出描述:

输出最大的不可以被制作出的总质量K。

做题时的思路:

无,只知道本质是数学问题

代码:

#include<stdio.h>
int main()
{long m,n;scanf("%ld %ld",&m,&n);printf("%ld",m*n-m-n);return 0;
}

或许可以实操的思路:

易知,两互素的最小公倍数为m*n,则 re(最大的不可以用两个整数数的a,b(非负整数)倍之和表示的数)必定在m*n之内,举例多组数据,从m*n到1,逐个验证,找出规律

本题采用的定理:赛瓦维斯特定理

已知 (a), (b)为大于 (1)的正整数, (gcd (a,b)=1) ( (a,b)互质),则使不定方程 (ax+by=C)不存在非负整数解的最大整数 (C=a*b−a−b)。

注释:

gcd:最大公约数

证明:

不会

牛客竞赛-新手上路-语法入门-顺序结构 .c相关推荐

  1. 牛客竞赛-新手上路-语法入门-选择结构.c

    F 吃瓜群众 链接:https://ac.nowcoder.com/acm/contest/19304/F 来源:牛客网 题目描述 群众想要吃瓜,于是给你一个瓜让你切,但是作为考验 告诉你西瓜的重量, ...

  2. 牛客竞赛-新手上路-语法入门-数组字符串 .c

    1001 随机序列 链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 国中生Chino总是做不完数学作业,Cocoa想来帮忙,但作业太多了,怎么也做不完. Chino的数学作业由T ...

  3. 牛客竞赛语法入门班顺序结构习题C++版本参考代码及部分解析

    牛客竞赛语法入门班顺序结构习题 C语言版本的参考代码 重点题: 1005 乘法表 1006 KiKi学程序设计基础 1017 水题再次来袭:明天星期几? 1018 开学? 1019 helloworl ...

  4. 【python】牛客竞赛语法入门班顺序结构习题 python解法

    题目链接:牛客竞赛语法入门班顺序结构习题_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 目录 1001 这是一道签到题 1002 排列式 1003 小飞机 1004 学 ...

  5. 牛客竞赛语法入门班数组栈、队列和stl习题

    牛客竞赛语法入门班数组栈.队列和stl习题 L 指纹锁 set ,自带排序功能 可重写排序函数 cmp,注意外边写的要写成 operator()operator()operator(),结构体内部的排 ...

  6. 牛客竞赛:第三届超越杯程序设计团体赛题解

    比赛链接:第三届超越杯程序设计团体赛重现赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJhttps://www.nowcoder.com/acm/contest/313 ...

  7. 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)

    关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训) 题目: 链接:https://ac.nowcoder.com/acm/contest/3004/B 来源:牛客网 题目描述 ...

  8. 项链(牛客竞赛2020-普及组第四场-T4)

    项链(牛客竞赛2020-普及组第四场-T4) 题目 原题链接 样例 输入1 4 3 4 3 -2 1 1 2 2 3 3 4 输出1 7 1 说明1 第一组样例,最优路径为1→2→3→41 \to 2 ...

  9. 牛客竞赛数学专题班生成函数I 题解

    牛客竞赛数学专题班生成函数I 题解 题单链接 背包 题目链接 题意 总共有888个物品,对于每个物品的选法都有要求,问带nnn个物品的方案数. 思路 构造生成函数,并将等比级数转为合式(∏i=0xi= ...

最新文章

  1. Logparser 分析 Exchange 日志文件
  2. mysql8.0.18用什么jdk_基础命令、cake-install、mysql远程登录、JDK安装
  3. python django windows_Python和Django在Windows上的环境搭建
  4. 握手失败_主人用吃的训练小柴犬握手,老柯基看到后的表现出了吃货的本能!...
  5. OAuth 2.0 授权码请求
  6. matlab与c 混合编程问题,MATLAB与C/C++混合编程的一些总结
  7. Oracle数据库awr报告使用与分析
  8. [SDOI2015] 序列统计
  9. 测试Flume-1.6.0写入HDFS(Hadoop-2.7.2)的简单实例
  10. vs2017远程编译linux教程,Visual Studio 2017 远程编译调试 Linux 上已存在的通过 Samba 共享的 CMake 工程...
  11. 全网首发:无线网桥的延迟太大,有时达到10秒以上
  12. 华为OSPF中silent-interface语句介绍
  13. 分治法——k小元素问题
  14. java中级考试_Java中级开发工程师笔试题及答案2016
  15. 基于SpringBoot实现简易的单点登录系统(提供gitee源码)
  16. 决策树_Python3实现代码及注释
  17. PCI、PCIE、PIC
  18. 用ajax请求本地的json失效,通过jquery的ajax请求本地的json文件方法
  19. sdut - 英文金曲大赛
  20. CodeForces 372 A. Counting Kangaroos is Fun

热门文章

  1. 网站服务器防扫描目录,服务器安全:添加Nginx规则防止服务器被恶意机器人扫描...
  2. 关于BGP通告默认路由的TAG值
  3. 程序员教你最美(帅)证件照该掌握在自己手里,用Python20行代码实现
  4. linux运行维护缺口,Linux运维工程师人才缺口巨大,或成2018年热门职位
  5. win10系统同时装win7系统详细图解
  6. AutojsPro 华为手机设置
  7. oracle ora 04080,请问我的帖子为何不能回复呢
  8. Lazada选品推荐,这些爆品成了东南亚开年大赢家
  9. opencv4.4百度网盘链接
  10. 服务器与虚拟主机介绍