题目描述
几经波折和磨难,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前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
最后
小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:
凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。
入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。
整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。
0819865203)]
[外链图片转存中…(img-kKBEWbRX-1710819865203)]
[外链图片转存中…(img-TVMvJwJR-1710819865204)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-ndvuY6p3-1710819865204)]
最后
小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:
凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。
入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。
整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。