23真题
作者:
Ksiiiii
,
2024-11-29 20:59:45
,
所有人可见
,
阅读 2
工龄排序
//这道题比较简单,在输入的时候设置一个数组cnt统计工龄记录索引就可以
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 10001;
int main(){
int n;
cin >> n;
worker w[n];
int cnt[N] = {0};
for(int i = 0;i < n;i ++){
cin >> w[i].age;
int num = w[i].age;
cnt[num] ++;
}
for(int j = 0;j < N;j ++){
if(!cnt[j]) continue;
cout << j << ":" << cnt[j] <<endl;
}
return 0;
}
二维前缀和
//这道题也很简单,只需要遍历二维矩阵计算子矩阵的和就行了
#include <iostream>
using namespace std;
const int N = 1001;
const int M = 1001;
int main(){
int n,m,q;
cin >> n >> m >> q;
int a[N][M];
for(int i = 1;i <= n;i ++){
for(int j = 1;j <= m;j ++){
cin >> a[i][j];
}
}
for(int i = 1;i <= q;i ++){
int x1,x2,y1,y2;
cin >> x1 >> y1 >> x2 >> y2;
int num = 0;
for(int i = x1;i <= x2;i ++){
for(int j = y1;j <= y2;j ++){
num += a[i][j];
}
}
cout << num <<endl;
}
}
机器人
//这个问题其实很适合dp思想来解决,但其实本质就是斐波那契数列
//递归写法
#include <iostream>
using namespace std;
int res = 0;
int n;
void f(int k){
if(k == n) res ++;
else if(k < n){
f(k + 1);
f(k + 2);
}
}
int main(){
cin >> n;
f(0);
cout << res;
}