2023年少年宫中级A1班
已结束
IOI
开始于: 2023-12-17 16:00
200
小时
主持人:
20
考试时间:16:10 - 17:30
T2:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <string>
#include <queue>
using namespace std;
const int N = 1e2 + 10;
const int INF = 0x3f3f3f3f;
int n, m;
int dir[8][2]= {{-1, -1}, {-1, 0},{-1, 1}, {1, -1}, {1, 0}, {1, 1},{0, 1},{0, -1}};
char map[N][N];
queue<pair<int, int> >q;
bool inArea(int x, int y){
return x >= 1 && x <= n && y >= 1 && y <= m;
}
void bfs(int x, int y){
q.push(make_pair(x, y));
while(!q.empty()){
int a = q.front().first;
int b = q.front().second;
q.pop();
for(int i = 0; i < 8; i ++){
int newx = a + dir[i][0];
int newy = b + dir[i][1];
if(inArea(newx, newy) && map[newx][newy] == 'W'){
q.push(make_pair(newx, newy));
map[newx][newy] = '.';
}
}
}
}
int main(){
cin >> n >> m;
int ans = 0;
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
cin >> map[i][j];
}
}
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
if(map[i][j] == 'W'){
bfs(i, j);
ans ++;
}
}
}
cout << ans;
return 0;
}
T3
int dfs(int n){
if(n == 1) return 1;
if(mp[n] == 0) {
mp[n] = 1;
for(int i = 2; i * i <= n; i ++){
if(n % i == 0){
if(i * i == n){
mp[n] += dfs(i);
}else{
mp[n] += (dfs(i) + dfs(n / i));
}
}
}
}
return mp[n];
}
题目
请参加比赛来查看题目。
- 状态
- 已结束
- 规则
- IOI
- 题目
- 3
- 开始于
- 2023-12-17 16:00
- 结束于
- 2023-12-26 0:00
- 持续时间
- 200 小时
- 主持人
- 参赛人数
- 20