目录
P1563 [NOIP2016 提高组] 玩具谜题
算法思路:模拟
#include<bits/stdc++.h>
using namespace std;
struct human{
bool face;
char name[15];
};
struct ask_{
bool direct;
int step;
};
ask_ b[100010];
int n,m;
human a[100010];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d%s",&a[i].face,a[i].name);
}
for(int i=1;i<=m;i++){
scanf("%d%d",&b[i].direct,&b[i].step);
}
int t=1;
for(int i=1;i<=m;i++){
bool d=(a[t].face^b[i].direct);
if(d==1){
t=t+b[i].step;
}
else{
t=t-b[i].step;
}
if(t<=0) t=t+n;
if(t>n) t=t-n;
}
printf("%s",a[t].name);
return 0;
}
得分:
100
{\color{Green}100}
100
P2615 [NOIP2015 提高组] 神奇的幻方
算法思路:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n+1][n+1];
memset(a,0,sizeof(a));
int x,y;
x=1;
y=n/2+1;
for(int i=1;i<=n*n;i++){
a[x][y]=i;
if(i==n*n) break;
else{
if(x==1&&y==n){
x++;
}
else if(x==1){
y++;
x=n;
}
else if(y==n){
y=1;
x--;
}
else if(a[x-1][y+1]!=0){
x++;
}
else{
x--;
y++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
得分:
100
{\color{Green}100}
100
P2827 [NOIP2016 提高组] 蚯蚓
算法思路:二叉堆,模拟
可能的解法:
得分:
10
{\color{Red}10}
10
订正代码:
反思小结:
P3960 [NOIP2017 提高组] 列队
算法思路:二叉堆,模拟
可能的解法:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,q;
cin>>n>>m>>q;
int a[n+5][m+5];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=(i-1)*m+j;
}
}
for(int i=1;i<=q;i++){
int x,y;
scanf("%d%d",&x,&y);
printf("%d\n",a[x][y]);
int u=a[x][y];
for(int j=y;j<m;j++){
a[x][j]=a[x][j+1];
}
if(n!=1){
for(int j=x;j<n;j++){
a[j][m]=a[j+1][m];
}
}
a[n][m]=u;
}
return 0;
}
得分:
0
{\color{Red}0}
0
订正代码:
在这里插入代码片
反思小结:
总得分/总分:210
整场比赛的总结: