- 袁野老师 的博客
2026北京普及强化Day9比赛Code
- @ 2026-2-11 15:35:48
A
#include <bits/stdc++.h>
using namespace std;
string s;
int ans;
int main() {
while (cin >> s){
for (auto c:s) if (c == 'f') ans++;
}
cout << ans;
return 0;
}
B
#include <bits/stdc++.h>
using namespace std;
int n;
double f(int x) {
if (x == 1) return 4;
else if (x == 2) return 3;
else return f(x-1) + f(x-2)/2;
}
int main() {
cin >> n;
printf("%.2f",f(n));
return 0;
}
C
#include <bits/stdc++.h>
using namespace std;
int n,k;
int dfs(int n, int k) {
if ((n-k)&1 || n <= k) return 1;
return dfs(n-k>>1,k) + dfs((n-k>>1)+k,k);
}
int main() {
cin >> n >> k;
cout << dfs(n,k);
return 0;
}
D
#include <bits/stdc++.h>
using namespace std;
int n,ans,a[20];
void dfs(int x,int sum) {
if (x == n+1) {
ans += (sum%6 == 0);
return;
}
dfs(x+1, sum+a[x]);
dfs(x+1, sum);
}
int main() {
cin >> n;
for (int i=1; i<=n; ++i) cin >> a[i];
dfs(1,0);
cout << ans;
return 0;
}
E
#include <bits/stdc++.h>
using namespace std;
int n,ans,a[20];
void dfs(int x,int sum) {
if (x == n+1) {
ans += (sum%6 == 0);
return;
}
dfs(x+1, sum+a[x]);
dfs(x+1, sum);
}
int main() {
cin >> n;
for (int i=1; i<=n; ++i) cin >> a[i];
dfs(1,0);
cout << ans;
return 0;
}
F
#include<bits/stdc++.h>
using namespace std;
int m[30][30][30];
int f(int x,int y,int z){
if(x<=0||y<=0||z<=0) return 1;
if(x>22||y>22||z>22) return f(22,22,22);
// 1 - 22
if (m[x][y][z] != -1) return m[x][y][z];
if(x<y&&y<z)
return m[x][y][z] = f(x,y,z-1)+f(x,y-1,z-1)-f(x,y-1,z);
return m[x][y][z] = f(x-1,y,z)+f(x-1,y-1,z)+f(x-1,y,z-1)-f(x-1,y-1,z-1);
}
int main(){
int x,y,z;
memset(m,-1,sizeof(m));
while(cin>>x>>y>>z){
if(x==-1&&y==-1&&z==-1)break;
cout<<"w("<<x<<", "<<y<<", "<<z<<") = "<<f(x,y,z)<<endl;
}
return 0;
}