集训营3号房 我数不清这是第几次醒过来了
2026-08-06 13:36:31
发布于:广东
在此讨论大家的成神之路~
PS:只允许发成神题解析!
全部评论 8
#include<bits/stdc++.h> using namespace std; int a[13];//输入 int j(int n){//自定义函数 if(n==1) return n;//递归终止条件 return n*(n-1);//×比n小一的数 } int main(){ int n; cin>>n; long long sum=1; for(int i=1;i<=n;i++){ sum*=i;//便利 } cout<<sum; return 0; }泰山老师快给彦祖加分
2026-08-06 来自 广东
5-------...-.--. ----.-.....-.-- -.--..-..-.-.-. -..-.--.-.-----. -..---.-....--. -----.--...-.--.- --------....--.. --...-....-...- -.-...--...--.- -..---..-.----- -..---.....--.- -.--.--.--..--. -..---.-....--. --..........-. --...-....-...- -.-..---.---.-- -.--.--.--..--. --........---.- --...--......-. -.-.-........-- --------....--.. --...-.------.. --...-.------.. -.-.--.-------. ----.---..-.--- -..---.-....--.
2026-08-07 来自 广东
2知识闯关大冒险
#include<bits/stdc++.h> using namespace std; const int N = 100005; long long dp[N]; // 储存累计知识点 int a[N]; int main() { int n; cin >> n; for(int i = 1; i <= n; i++) { cin >> a[i]; } dp[0] = 0; dp[1] = a[1]; for(int i = 2; i <= n; i++) { //选了当前这关(加上a[i]) 那总和就是选上上一关(dp[i-2]) 再加当前这关 dp[i] = dp[i‑2] + a[i] //不选当前这关(不加a[i]) 那总和就是之前的总和 dp[i]=dp[i-1] dp[i] = max(dp[i-1], dp[i-2] + a[i]);//看选不选这关哪个结果更大选哪个 } cout << dp[n] << endl; return 0; }2026-08-06 来自 广东
1PELL数列
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const ll N=1e6+1;
ll n;
ll a[N];
int main(){
cin>>n;
while (n--){
int q;
cin>>q;
a[1]=1;
a[2]=2;//将a[1]和a[2]定义成1和2
for (int i = 3;i <= q;i++){//遍历a数组
a[i]=(2*a[i-1]+a[i-2])%32767;//计算a[i]并模上32767
}cout <<a[q]<<"\n";
}
return 0;
}2026-08-06 来自 广东
1在一个阳光明媚,万里无云的周六,泰山老师突然兴致大起,来到了泰山,并且立下FLAG,说只要一天爬不到顶,就给XP02--3的同学们一人买一只西伯利亚大企鹅,一只高达10000000dollar。为了不让泰山老师破产,请你————这个银河系🌌魅力最大的最帅的男人。帮他用c++找出所有到山顶的路径,并统计数量,泰山老师会自动挑出一条最短路来走。
#输入格式
输入 a,b表示一个a*b的二维数组,
起点为( 1 , 1 ),终点为( m , n )也就是山顶。
#输出格式
输出从(1,1)到(m,n)所有路径的数量。2026-08-06 来自 广东
1马走日
#include<bits/stdc++.h> using namespace std; long long a[1010][1010]; int main(){ int n,m; cin>>n>>m; a[0][0] = 1; for(int i=0;i<=m;i++){ for(int j=0;j<=n;j++){ if(i == 0 && j == 0) continue; long long s=0; if(i-1>=0 && j-2>=0) s += a[i-1][j-2]; if(i-1>=0 && j+2<=n) s += a[i-1][j+2]; if(i-2>=0 && j-1>=0) s += a[i-2][j-1]; if(i-2>=0 && j+1<=n) s += a[i-2][j+1]; a[i][j] = s; } } cout<<a[m][n]<<endl; return 0; }2026-08-06 来自 广东
1#include<bits/stdc++.h>
using namespace std;
long long a[1010][1010];
int main(){
int n,m;cin>>n>>m;
a[1][1]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i1&& j1)continue;
a[i][j]=(a[i][j-1]+a[i-1][j])%114514;
}}
cout<<a[n][m]%114514<<endl;
return 0;
}
机器人2026-08-06 来自 广东
1这道题需要二维数组,由于须累加,所以用long long。
2026-08-06 来自 广东
1
银行取号1
#include<bits/stdc++.h> using namespace std; const int N=1e5+1; long long _; int main(){ cin>>_; queue<string> v,n; int flag=-1; while(_--){ string s;cin>>s; if(s[0] == 'V') v.push(s); else if(s[0] == 'N') n.push(s); if(!v.empty() && flag == -1){//当前没人办理 vip先办理 flag = 1;//有人办理 v.pop() ; }else if(!n.empty() && flag == -1){//当前没人办理 非vip先办理 flag = 1;//有人办理 n.pop() ; } //遇到end指令,当前正在办理业务的直接结束,直接进入下一位 if(s == "end"){ if(!v.empty()) v.pop(); else if(!n.empty()) n.pop(); else flag = -1;//两个队伍都是空的标志变量设为-1 表示无人办理 } } // 指令结束先输出VIP队伍 while(!v.empty()){ cout<<v.front()<<" "; v.pop(); } while(!n.empty()){ cout<<n.front()<<" "; n.pop(); } return 0; }2026-08-07 来自 广东
0






















有帮助,赞一个