【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)位 ...
随机推荐
- [Js代码风格]浅析模块模式
1.实例解释模块模式 简明扼要的说,经典的模块模式指的定义一个立即执行的匿名函数.在函数中定义私有函数和私有变量并且返回一个包含公共变量和公共函数作为属性和方法的匿名对象. var classicMo ...
- 基于window ftp上传问题
FtpClient上传文件异常:java.net.SocketException: Connection reset cmd输入: netsh advfirewall set global State ...
- JS中实现replaceAll的方法
第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace ...
- python连接mongodb集群
一 安装模块pymongo pip3 install pymongo 二 创建一个MongoClient conn=MongoClient('mongodb://cbi:pass@ip1:20000, ...
- Java多线程状态切换
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426573.html 线程状态 NEW RUNNABLE BLOCKED WAITING TIMED ...
- spring无法接收上传文件
现象 前端用ajax方式提交表单,代码类似于下面的例子. var formData = new FormData(); // HTML 文件类型input,由用户选择 formData.append( ...
- Spring框架-经典的案例和demo,一些可以直接用于生产,使用atomikos来处理多数据源的一致性事务等
Spring Examples Demo website:http://www.ityouknow.com/ 对Spring框架的学习,包括一些经典的案例和demo,一些可以直接用于生产. sprin ...
- nodejs在Windows 7上的搭建
一.安装nodejs 去官网下载https://nodejs.org/download/,我选择下载node-v9.3.0-x64.msi ,最新版本, 安装路径放在了D盘,因为C盘的空间不够了,直接 ...
- select into outfile的sql语句
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据.但是这种方法只能导出或导入数据的内容,不包括表的结构,如果 ...
- websocket 文件上传
<template> <div class="pad20"> <input id="file" ref="f ...