P1426 小鱼会有危险吗

题目链接:https://www.luogu.com.cn/problem/P1426

题目大意:

有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%。有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测器,探测器左右x米之内是探测范围。一旦小鱼进入探测器的范围,探测器就会在这一秒结束时把信号传递给那个猎人,猎人在一秒后就要对探测器范围内的水域进行抓捕,这时如果小鱼还在这范围内就危险了。也就是说小鱼一旦进入探测器范围,如果能在下1秒的时间内马上游出探测器的范围,还是安全的。现在给出s和x的数据,请你判断小鱼会不会有危险?如果有危险输出'y',没有危险输出'n'。

解题思路:

一直循环路程的移动一直到位移 \(\ge\) S-x,然后再移动 1 秒,判断是否 \(\gt\) S+x 即可。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
double S, s, x, v = 7;
bool check() {
while (s < S-x) {
s += v;
v *= 0.98;
}
s += v;
return s > S+x;
}
int main() {
cin >> S >> x;
puts( check() ? "n" : "y" );
return 0;
}

P1464 Function

题目链接:https://www.luogu.com.cn/problem/P1464

题目大意:

求一个递归函数。

解题思路:

有很多重叠子问题,需要用到备忘录(记忆化搜索)。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
bool vis[22][22][22];
long long f[22][22][22];
long long w(long long a, long long b, long long c) {
if (a <= 0 || b <= 0 || c <= 0) return 1LL;
if (a > 20 || b > 20 || c > 20) return w(20, 20, 20);
if (vis[a][b][c]) return f[a][b][c];
vis[a][b][c] = true;
if (a < b && b < c) f[a][b][c] = w(a,b,c-1) + w(a,b-1,c-1) - w(a,b-1,c);
else f[a][b][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);
return f[a][b][c];
}
int main() {
long long a, b, c;
while (~scanf("%lld%lld%lld", &a, &b, &c) && !(a==-1 && b==-1 && c==-1)) {
printf("w(%lld, %lld, %lld) = %lld\n", a, b, c, w(a, b, c));
}
return 0;
}

P1014 Cantor表

题目链接:https://www.luogu.com.cn/problem/P1014

题目大意:

找到Cantor表的第N项。

解题思路:

枚举找。

发掘规律:

我们设当前的分子是 \(a\) ,分母是 \(b\) ,则:

  • 如果 \(a+b\) 是偶数:

    • 如果 \(a \lt 1\) ,则 \(a=a-1; b=b+1\)
    • 否则,\(b=b+1\)
  • 如果 \(a+b\) 是奇数:
    • 如果 \(b \lt 1\) ,则 \(a=a+1; b=b-1\)
    • 否则,\(a=a+1\)

一开始 \(a=b=1\) ,按照此规律循环 \(N-1\) 次即可。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
int n, a = 1, b = 1;
int main() {
cin >> n;
while (-- n) {
if ( (a+b) % 2 == 0 ) {
if (a > 1) a --, b ++;
else b ++;
}
else {
if (b > 1) a ++, b --;
else a ++;
}
}
cout << a << "/" << b << endl;
return 0;
}

P1022 计算器的改良

题目链接:https://www.luogu.com.cn/problem/P1022

题目大意:解一元一次方程。

解题思路:

这道题目较为繁琐的是对于输入的处理。

我一开始是处理字符串使得变成多个“符号”+“数字”+“a/b”的形式,规范化了字符串格式之后,我再使用 stringstream 来处理。

然后处理起来有一些细节要处理,有点伤脑筋,脑细胞死掉不少囧。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
string s;
char cc;
int main() {
cin >> s;
bool flag = false; for (int i = 0; i < s.length(); i ++) {
if (isalpha(s[i])) {
cc = s[i];
s[i] = 'a';
}
if (s[i] == '=') { flag = true; }
else if (flag && s[i] == '+') s[i] = '-';
else if (flag && s[i] == '-') s[i] = '+';
}
for (int i = 0; i < s.length(); i ++) {
if (s[i] == '=') {
if (s[i+1] != '+' && s[i+1] != '-') s[i] = '-';
else s = s.substr(0, i) + s.substr(i+1);
break;
}
}
if (s[0] == 'a') s = "1" + s;
while (true) {
int idx = -1;
int len = s.length();
for (int i = 1; i < len; i ++) {
if (s[i] == 'a' && !isdigit(s[i-1])) {
idx = i;
break;
}
}
if (idx == -1) break;
else s = s.substr(0, idx) + "1" + s.substr(idx);
}
while (true) {
int idx = -1;
int len = s.length();
for (int i = 0; i < len; i ++) {
if (isdigit(s[i]) && (i==len-1 || s[i+1]=='+' || s[i+1]=='-' )) {
idx = i;
break;
}
}
if (idx == -1) break;
else s = s.substr(0, idx+1) + "b" + s.substr(idx+1);
}
stringstream ss(s);
char c;
int num, a = 0, b = 0;
while (ss >> num >> c) {
if (c == 'a') a += num;
else b += num;
}
double res = - (double) b / (double) a;
printf("%c=%.3lf\n", cc, res);
}

P1307 数字反转

题目链接:https://www.luogu.com.cn/problem/P1307

题目大意:带符号数字翻转。

解题思路:先取出符号,然后对数据进行翻转,最后如果一开始是负数再把符号加上。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
bool flag = false;
int a, b;
int main() {
cin >> a;
if (a < 0) { flag = true; a = -a; }
while (a) {
b = b * 10 + a % 10;
a /= 10;
}
if (flag) b *= -1;
cout << b << endl;
return 0;
}

洛谷训练新手村之“BOSS战-入门综合练习2”题解的更多相关文章

  1. 洛谷训练新手村之“BOSS战-入门综合练习1”题解

    P1478 陶陶摘苹果(升级版) 题目链接:https://www.luogu.com.cn/problem/P1478 题目大意:陶陶有s点体力值,每个苹果消耗体力值,问s体力值最多能摘多少苹果. ...

  2. 洛谷-小鱼会有危险吗-BOSS战-入门综合练习2

    题目描述 Description 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%.有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测 ...

  3. 洛谷-烤鸡-BOSS战-入门综合练习1

    题目背景 Background 猪猪hanke得到了一只鸡  题目描述 Description 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10 ...

  4. 洛谷-陶陶摘苹果(升级版)-BOSS战-入门综合练习1

    题目描述 Description 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同 ...

  5. 洛谷-哥德巴赫猜想(升级版)-BOSS战-入门综合练习1

    题目背景 Background 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和 ...

  6. 洛谷-三连击(升级版)-BOSS战-入门综合练习1

    题目描述 Description 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成A:B:C的比例,试求出所有满足条件的三个三位数,若无解,输出“No!!!”.  输入输出格 ...

  7. 【Luogu】【关卡1-8】BOSS战-入门综合练习2(2017年10月)【AK】------都是基础题

    P1426 小鱼会有危险吗 我个人觉得这个题目出的不好,没说明白,就先只粘贴的AC代码吧 #include <bits/stdc++.h> using namespace std; int ...

  8. 【洛谷P2584】【ZJOI2006】GameZ游戏排名系统题解

    [洛谷P2584][ZJOI2006]GameZ游戏排名系统题解 题目链接 题意: GameZ为他们最新推出的游戏开通了一个网站.世界各地的玩家都可以将自己的游戏得分上传到网站上.这样就可以看到自己在 ...

  9. 洛谷4525 & 4526:【模板】自适应辛普森法——题解

    参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B ...

随机推荐

  1. oracle函数 INSTR(C1,C2[,I[,J]])

    [功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; [说明]多字节符(汉字.全角符等),按1个字符计算 [参数] C1    被搜索的字符串 C2    希望搜索的字符串 I     搜 ...

  2. windows 和 linux 安装 tensorflow

    安装 跟往常一样,我们用 Conda 来安装 TensorFlow.你也许已经有了一个 TensorFlow 环境,但要确保你安装了所有必要的包. OS X 或 Linux 运行下列命令来配置开发环境 ...

  3. VS Code导入已存在的Vue.js工程

    打开vscode------->文件--------->打开文件夹--------->选择工程文件夹-------->确定 查看---->终端或者使用"Ctrl ...

  4. linux自动挂载NTFS格式移动硬盘

    转自:http://blog.163.com/cmh_lj/blog/static/100812304201252522119264/ 由于移动硬盘还有不少的资料,刚插入移动硬盘的时候发现只能自动挂载 ...

  5. Window setTimeout() 方法

    定义和用法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注意:如果你只想重复执行可以使用 setInterval() 方法. 可以使用clearTimeout()方法来阻 ...

  6. Python--day63--图书管理系统表结构设计

    pycharm中运行manage.py的工具: 1,将变更翻译成SQL语句,去数据库中执行(ORM操作过数据库后都要执行这两条命令) 2,ForeignKey会自动在属性后面加_id 3,ORM封装p ...

  7. [转]Spring 注解大全与详解

    Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类 ...

  8. P1013 高精度加法

    题目描述 给你两个很大的正整数A和B,你需要计算他们的和. 输入格式 输入一行包含两个正整数A和B,以一个空格分隔(A和B的位数都不超过 \(10^5\)) 输出格式 输出一行包含一个整数,表示A+B ...

  9. Linux 内核PC/104 和 PC/104+

    当前在工业世界中, 2 个总线体系是非常时髦的: PC/104 和 PC/104+. 2 个在 PC-类 的 单板计算机中都是标准的. 2 个标准都是印刷电路板的特殊形式, 包括板互连的电子的/机械的 ...

  10. Docker应用容器引擎

    1.Docker概述 1.1.Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到 ...