202206-1 归一化处理
考察sqrt函数和pow函数
试题名称: 归一化处理
时间限制: 500ms
内存限制: 512.0MB
问题描述:
题目背景
在机器学习中,对数据进行归一化处理是一种常用的技术。
将数据从各种各样分布调整为平均值为0 、方差为1 的标准分布,在很多情况下都可以有效地加速模型的训练。
样例输入
7
-4 293 0 -22 12 654 1000
样例输出
-0.7485510379073613
0.04504284674812264
-0.7378629047806881
-0.7966476369773906
-0.7057985054006686
1.0096468614303775
1.9341703768876082
#include<iostream>
#include<stack>
#include<algorithm>
#include<string>
#include<map>
#include<math.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n];
int sum=0;
for(int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}
//平均
double aver=sum*1.0/n;
double d=0;
for(int i=0;i<n;i++){
d+=pow(a[i]-aver,2);
}
//方差
double da=d/n;
for(int i=0;i<n;i++){
cout<<(a[i]-aver)/sqrt(da)<<endl;
}
return 0;
}
202206-2 寻宝!大冒险!
试题名称: 寻宝!大冒险!
时间限制: 500ms
内存限制: 512.0MB
问题描述:
题目背景
暑假要到了。可惜由于种种原因,小 P 原本的出游计划取消。失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期……直到……
某天,小 P 获得了一张神秘的藏宝图。
输出格式
输出到标准输出。
输出一个整数,表示绿化图中有多少处坐标可以与藏宝图左下角对应,即可能埋藏着顿顿的宝藏。
样例 1 输入
5 100 2
0 0
1 1
2 2
3 3
4 4
0 0 1
0 1 0
1 0 0
样例 1 输出
3
因为左下角一定是树,所以遍历树,不要遍历整个绿化图
#include<iostream>
#include<stack>
#include<algorithm>
#include<string>
#include<map>
#include<math.h>
using namespace std;
struct Tree {
int x;
int y;
};
int main() {
int n,l,s;
cin>>n>>l>>s;
Tree t[n]; //存放树的坐标
map<int,map<int,int> >mp;
int b[s+1][s+1];
for(int i=0; i<n; i++) {
cin>>t[i].x>>t[i].y;
mp[t[i].x][t[i].y]=1; //标记
}
for(int i=s;i>=0;i--){
for(int j=0;j<=s;j++){
cin>>b[i][j];
}
}
int count=0;
// 判断树满不满足条件
for(int i=0;i<n;i++){
//左下角坐标
int x=t[i].x;
int y=t[i].y;
bool flag=true;
for(int j=0;j<=s;j++){
for(int k=0;k<=s;k++){
// 不超过绿化图且藏宝图和绿化图相等
if(x+s>l||y+s>l||mp[x+j][y+k]!=b[j][k]){
flag=false;
break;
}
}
}
if(flag) count++;
}
cout<<count;
return 0;
}