【Luogu】【关卡1-8】BOSS战-入门综合练习2(2017年10月)【AK】------都是基础题
P1426 小鱼会有危险吗
我个人觉得这个题目出的不好,没说明白,就先只粘贴的AC代码吧
#include <bits/stdc++.h>
using namespace std; int main() {
double s, x;
cin >> s >> x;
double start = s - x, endd = s + x; //探测器的范围
double speed = 7.0, length = 0.0;
//没有游到探测器范围之前
while(length < start) {
length += speed;
speed *= 0.98;
}
if (length + speed > endd) {
cout << "n" << endl;
}
else {
cout << "y" << endl;
} return ;
}
P1464 Function
对于一个递归函数w(a,b,c)
如果a<=0 or b<=0 or c<=0就返回值1.
如果a>20 or b>20 or c>20就返回w(20,20,20)
如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)
其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)
这是个简单的递归函数,但实现起来可能会有些问题。当a,b,c均为15时,调用的次数将非常的多。你要想个办法才行.
/*
absi2011 : 比如 w(30,-1,0)既满足条件1又满足条件2
这种时候我们就按最上面的条件来算
所以答案为1
*/
解答:记忆化,直接用个数组存了。
一开始全WA, 我还没想通为啥,后来发现有个条件是【如果a>20 or b>20 or c>20就返回w(20,20,20)】
这个放在一开始的主函数判断里面了,但是如果这个数比20大,就把这个数字=20.
但是假如这个元组是 (25, 3, 2) ------> 正确答案是 (20, 20,20)
如果按照我当时的算法就是 (25,3,2) ------> 就会变成 (20,3,2) 就会去计算这个数。
还有个错误点就是又踩内存了... 访问||更新数组之前一定要判断下标是否能取到。
#include <bits/stdc++.h>
using namespace std;
int w[][][] = {};
int cal(int a, int b, int c) {
if (a <= || b <= || c <= ) {
return ;
}
if (a > || b > || c > ) {
return cal(, ,);
}
if (w[a][b][c] != -) {
return w[a][b][c];
}
if (a < b && b < c) {
w[a][b][c] = cal(a, b, c-) + cal(a, b-, c-) - cal(a, b-, c);
return w[a][b][c];
}
w[a][b][c] = cal(a-,b,c) + cal(a-,b-,c) + cal(a-,b,c-) - cal(a-,b-,c-);
return w[a][b][c];
}
int main() {
memset(w,0xFF,sizeof(w));
long long a, b, c;
cin >> a >> b >> c;
while (a != - || b != - || c != -) {
int a1 = a > ? : a;
int b1 = b > ? : b;
int c1 = c > ? : c;
int ans = cal(a1, b1, c1);
if (a1 >= && b1 >= && c1 >= ) {
w[a1][b1][c1] = ans;
}
printf("w(%lld, %lld, %lld) = %d\n", a, b ,c, ans);
cin >> a >> b >>c;
}
return ;
}
P1014 Cantor表

我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…输出表中的第N项
解答:找规律发现第一行1个数,第二行2个数,第三行3个数...等差数列。注意下细节就好。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int summ = , lines = ;
while(n > summ) {
++lines;
summ += lines;
}
summ -= lines;
int left = n - summ;
int fenfu, fenzi;
if (lines % == ) {
fenfu = lines + , fenzi = ;
for (int i = ; i <= left; ++i) {
fenfu--; fenzi++;
}
} else {
fenfu = , fenzi = lines + ;
for (int i = ; i <= left; ++i) {
fenfu++; fenzi--;
}
}
cout << fenzi << "/" <<fenfu << endl;
return ;
}
【Luogu】【关卡1-8】BOSS战-入门综合练习2(2017年10月)【AK】------都是基础题的更多相关文章
- 洛谷训练新手村之“BOSS战-入门综合练习2”题解
P1426 小鱼会有危险吗 题目链接:https://www.luogu.com.cn/problem/P1426 题目大意: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每 ...
- 洛谷训练新手村之“BOSS战-入门综合练习1”题解
P1478 陶陶摘苹果(升级版) 题目链接:https://www.luogu.com.cn/problem/P1478 题目大意:陶陶有s点体力值,每个苹果消耗体力值,问s体力值最多能摘多少苹果. ...
- 洛谷-小鱼会有危险吗-BOSS战-入门综合练习2
题目描述 Description 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%.有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测 ...
- 洛谷-烤鸡-BOSS战-入门综合练习1
题目背景 Background 猪猪hanke得到了一只鸡 题目描述 Description 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10 ...
- 洛谷-陶陶摘苹果(升级版)-BOSS战-入门综合练习1
题目描述 Description 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同 ...
- 洛谷-哥德巴赫猜想(升级版)-BOSS战-入门综合练习1
题目背景 Background 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和 ...
- 洛谷-三连击(升级版)-BOSS战-入门综合练习1
题目描述 Description 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成A:B:C的比例,试求出所有满足条件的三个三位数,若无解,输出“No!!!”. 输入输出格 ...
- 【Luogu】【关卡2-12】递推与递归二分(2017年10月)
任务说明:递推,层层递进,由基础推向顶层.二分不仅可以用来查找数据,还可以确定最合适的值. P1192 台阶问题 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶 ...
- 【Luogu】【关卡2-16】线性动态规划(2017年10月)【还差三道题】
任务说明:这也是基础的动态规划.是在线性结构上面的动态规划,一定要掌握. P1020 导弹拦截 导弹拦截 P1091 合唱队形 老师给同学们排合唱队形.N位同学站成一排,音乐老师要请其中的(N-K)位 ...
随机推荐
- 自从学会了 Array.reduce() ,再也离不开它
(转载)原文链接:https://juejin.im/post/5dfd9d27e51d455825129ec3 在所有后 ES6 时代的数组方法中,我觉得最难理解的就是Array.reduce( ...
- 使用aop和BindingResult进行参数验证
1.在需要校验的参数名上面添加注解 2.在web层接收参数(参数前面使用@Valid进行标记,后面必须紧跟参数bindingResult,存储参数的错误信息) 3.使用aop进行校验信息统一处理 @C ...
- mysql-alter语句常用操作
删除列 alter table table-name drop col-name 增加列(多列) alter table table-name add col-name col-type commen ...
- 转帖 移动端h5页面不同尺寸屏幕适配兼容方法
1. viewport属性及html页面结构 <meta name="viewport" content="width=device-width,initial ...
- typedef 函数指针的使用(含例子)
C代码 //#include<iostream.h> #include<stdio.h> typedef int (*FP_CALC)(int, int); ...
- Concurrent - 多线程
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426916.html Java中有几种方法可以实现一个线程? 继承Thread类(不支持多继承) 实 ...
- ceph学习笔记之十二 Ubuntu安装部署Ceph J版本
https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一.安装前准备工 ...
- 基于c语言数据结构+严蔚敏——线性表章节源码,利用Codeblocks编译通过
白天没屌事,那我们就来玩玩线性表的实现吧,快要失业了,没饭吃了咋整哦 题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B ...
- chroot()使用
好多的程序,都有使用chroot来是程序chroot到一个目录下面,来保护文件系统,今天在看snort代码的时候,看到了实现,就贴出一个测试程序来,实际上是比较简单的. chroot()在lin ...
- ROS录制主题和放
1.按照指定名称录制指定主题, 如录制主题为line_markers,名称为line_extraction的bag包. rosbag record -O line_extraction.bag /li ...