题目描述

几经波折和磨难,XP终于拿到了宝库的钥匙和藏宝图,他站在宝库的左上角,这是宝库的入口,出口在右下角。宝库是由一个个小暗格组成的正方形,有些暗格里面有宝藏,也有一些暗格没有。暗格中布满了机关,所有开往左边和上面的门都不能开启,一旦开启就会触发机关,将被万箭穿心。XP开始陷入深深的沉思,他希望活着走出宝库;人总是有贪欲的,他还希望能够带走尽可能多的宝藏,你能否帮到他呢?

输入

每组输入第一个包括一个N,表示N*N的矩阵

第2~n+1行表示该藏宝图 (0<=N<=20)

输出

XP获得的最多宝藏数

样例输入 Copy

3

1 10 2

2 1 1

20 1 1

样例输出 Copy

25

分析:用搜索或者dp都可以的,

#include

#include

#include

#include

#include “string.h”

#include

#include <math.h>

#include “map”

#include

#include

#include “cctype”

#define mst(a, b) memset(a, b, sizeof(a))

const int maxx = 2e5 + 5;

#define ll long long

const ll mod = 1e9 + 7;

const int MAX_N = 1005;

const ll mo = 998244353;

const double pi = 3.1415926535898;

using namespace std;

int ma[30][30] = {0};

int main()

{

int n;

while( cin >> n){

mst(ma,0);//清零

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

cin >> ma[i][j];

for(int i=1;i<n;i++)

{

ma[i][0]+=ma[i-1][0]; // 最上侧和左侧都只能走一个方向

ma[0][i]+=ma[0][i-1];

}

for (int i = 1; i < n; i++)

for (int j = 1; j < n; j++)

{

//ma[i][j]表示从起点,到(i,j)点的最大值。

ma[i][j]+=max(ma[i][j-1],ma[i-1][j]);//当前值加上它上方和左边中最大那个

}

cout<<ma[n-1][n-1]<<endl;

}

}

问题 E: 小小yh的几何


题目描述

一个大圆中包含两个小圆,三个圆的圆心均位于同一水平直线。

输入

有多组数据,每行包含两个实数,分别表示两个蓝色圆的面积。s1,s2(1<=s<=100)

输出

绿色部分面积。(保留三位小数)

样例输入 Copy

3.140 3.140

样例输出 Copy

6.280

分析:推公式 可以推出来 S1+S2+S绿 = S大圆   S绿=2π r1r2

#include

#include

#include

#include

#include “string.h”

#include

#include <math.h>

#include “map”

#include

#include

#include “cctype”

#define mst(a, b) memset(a, b, sizeof(a))

const int maxx = 2e5 + 5;

#define ll long long

const ll mod = 1e9 + 7;

const int MAX_N = 1005;

const ll mo = 998244353;

const double pi = 3.1415926535898;

using namespace std;

int main()

{

double r1,r2;

double s1,s2;

while(cin>>s1>>s2)

{

r1=sqrt(s1/pi);//算出两个小圆的半径

r2=sqrt(s2/pi);

printf(“%.3f\n”,2pir1*r2);

}

}

问题 F: 我爱中国


题目描述

今年是祖国70周年华诞,LW老师让我用我们专业的方式来在年末的时刻表达一下对祖国的热爱吧!

输出

输出一行“I love China”

样例输出 Copy

I love China

分析:签到题

#include

#include

#include

#include

#include “string.h”

#include

#include <math.h>

#include “map”

#include

#include

#include “cctype”

#define mst(a, b) memset(a, b, sizeof(a))

const int maxx = 2e5 + 5;

#define ll long long

const ll mod = 1e9 + 7;

const int MAX_N = 1005;

const ll mo = 998244353;

using namespace std;

int main()

{

cout<<“I love China”<<endl;

}

问题 G: 小小yh的数论


hyh最近迷上了数论,尤其对费马小定理情有独钟,最近他又发现利用费马小定理能够快速求出2^100除以13的余数

费马小定理定义如下:费马小定理(Fermats little theorem)是数论中的一个重要定理,在1636年提出。如果p是一个质数,而整数a不是p的倍数,则有a^(p-1)≡1(mod p)相信聪明的学弟学妹们一定能够从上面的计算过程中,快速求出p是一个质数且a不是p的倍数的情况下,(a^n)%p的答案

输入

有多组样例,每行包含三个整数a,n,p(2<=a<=9,1<=n<=1000000,2<=p<=14)

输入保证a,p互质。

输出

每组数据输出一个整数,代表(a^n)%p后的值。

样例输入 Copy

2 100 13

样例输出 Copy

3

提示

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

9^13=2541865828329超出了int的数据范围

分析:其实按照题意模拟一遍就好了,这里多组输入,索性就它封装成一个函数

#include

#include

#include

#include

#include “string.h”

#include

#include <math.h>

#include “map”

#include

#include

#include “cctype”

#define mst(a, b) memset(a, b, sizeof(a))

const int maxx = 2e5 + 5;

#define ll long long

const int MAX_N = 1005;

const ll mo = 998244353;

const double pi = 3.1415926535898;

using namespace std;

bool dp[1005];

ll fm(ll a, ll b, ll mod)

{

ll t, y;

t = 1, y = a;

while (b != 0)

{

if ((b & 1) == 1)

t = t * y % mod;

y = y * y % mod;

b >>= 1; //等价于b/=2;

}

return t;

}

int main()

{

int a, n, p;

while (cin >> a >> n >> p)

cout << fm(a, n, p) << endl;

}

问题 H: yangftc的魔法


题目描述

yangftc会两种魔法,一个是将一个东西变多a份,另一个是将一个东西复制一倍,不过他只有b个单位的能量,每一种魔法都会消耗一单位的能量,yangftc现在有x个单位的钱,yangftc想让他的钱尽量多,你能告诉他他最多能有多少钱吗

输入

首先输入t代表样例数量

后跟t组样例每一个样例一行

每个样例输入三个数字a,b,x

输出

yangftc最多能拥有的钱数

数据范围  1<=t<=500  1<=a<=40  1<=b<=40  1<=x<=10

样例输入 Copy

1

1 2 1

样例输出 Copy

4

分析:思考一下就知道在x小于a之前,选择加a比x翻倍划算。于是模拟一波

#define mst(a, b) memset(a, b, sizeof(a))

const int maxx = 2e5 + 5;

#define ll long long

const ll mod = 1e9 + 7;

const int MAX_N = 1005;

const ll mo = 998244353;

const double pi = 3.1415926535898;

using namespace std;

int dp[1005][1005];

int v[1005] = {0};

int w[1005] = {0};

int main()

{

ll t;

cin >> t;

ll a, b, x;

while (t–)

{

cin >> a >> b >> x;

while (b–)//当还有能量时

{

if (x < a)

x += a;

else

{

x *= 2;

}

}

cout<<x<<endl;

}

}

问题 I: Yangftc&XP的博弈


题目描述

yangftc逃出魔法大陆后,发现自己在一片沙漠,旁边是XP,他是从另一个魔法大陆来的,而附近只有一瓶水,这只够一个人走出去,为了存活下来他们决定玩一个游戏来决定水的归属

他们找来一些石子(不用管他们怎么找过来的)放在一起变成一堆。如果这一堆石子个数为奇数则可以拿去一个或者两个石子,如果这一堆石子个数为偶数则只能拿去一个石子,两个人轮流进行操作,yangftc先手,取走最后一个石子的人胜,假设两个人都知道游戏的诀窍,判断yangftc是否能赢

输入

第一个数字t代表样例数量

后面t个样例,每一个样例输入一个整数n代表石子的个数

输出

yangftc能赢输出YES,否则输出NO

数据范围 1<=t<=500   1<=n<=100000

样例输入 Copy

2

2

3

样例输出 Copy

NO

YES

分析:多做几次就会发现规律。n为奇数yftc就会赢,否则就会输。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

最后

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《前端开发四大模块核心知识笔记》

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-J5mgE1S0-1710819815437)]
[外链图片转存中…(img-ApZy0DXE-1710819815438)]
[外链图片转存中…(img-Jue3J06I-1710819815438)]
[外链图片转存中…(img-6SCatfTn-1710819815438)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-mduG1wt6-1710819815439)]

最后

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《前端开发四大模块核心知识笔记》

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐