入门4数组
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门4数组相关的知识,希望对你有一定的参考价值。
https://www.luogu.com.cn/training/103#problems
目录
- P1428 小鱼比可爱
- P1427 小鱼的数字游戏
- P5727 【深基5.例3】冰雹猜想
- P1047 [NOIP2005 普及组] 校门外的树
- P5728 【深基5.例5】旗鼓相当的对手
- P5729 【深基5.例7】工艺品制作
- P2550 [AHOI2001]彩票摇奖
- P2615 [NOIP2015 提高组] 神奇的幻方
- P5730 【深基5.例10】显示屏
- P1554 梦中的统计
- P2141 [NOIP2014 普及组] 珠心算测验
- P1614 爱与愁的心痛
- P2911 [USACO08OCT]Bovine Bones G
- P1161 开灯
- P5731 【深基5.习6】蛇形方阵
- P5732 【深基5.习7】杨辉三角
- P1789 【Mc生存】插火把
- P1319 压缩技术
- P1320 压缩技术(续集版)
- P1205 [USACO1.2] 方块转换 Transformations
P1428 小鱼比可爱
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n;
int main(void)
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++)
int cnt=0;
for(int j=0;j<i;j++)
if(a[i]>a[j]) cnt++;
cout<<cnt<<" ";
return 0;
P1427 小鱼的数字游戏
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],cnt;
int main(void)
while(cin>>a[cnt++])
if(a[cnt-1]==0) break;
for(int i=cnt-2;i>=0;i--) cout<<a[i]<<" ";
return 0;
P5727 【深基5.例3】冰雹猜想
#include<bits/stdc++.h>
using namespace std;
int main(void)
int n; cin>>n;
vector<int>ve; ve.push_back(n);
while(n!=1)
if(n%2==0) n=n/2;
else n=n*3+1;
ve.push_back(n);
for(int i=ve.size()-1;i>=0;i--) cout<<ve[i]<<" ";
return 0;
P1047 [NOIP2005 普及组] 校门外的树
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,m;
int main(void)
cin>>n>>m;
while(m--)
int l,r; cin>>l>>r;
l++,r++;
a[l]+=1,a[r+1]-=1;
int ans=n+1;
for(int i=1;i<=n+1;i++)
a[i]+=a[i-1];
if(a[i]) ans--;
cout<<ans;
return 0;
P5728 【深基5.例5】旗鼓相当的对手
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N],b[N],c[N];
int n,cnt;
int main(void)
cin>>n;
for(int i=0;i<n;i++) cin>>a[i]>>b[i]>>c[i];
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
int flag=1;
if(abs(a[i]-a[j])>5) flag=0;
if(abs(b[i]-b[j])>5) flag=0;
if(abs(c[i]-c[j])>5) flag=0;
if(abs(a[i]+b[i]+c[i]-a[j]-b[j]-c[j])>10) flag=0;
if(flag) cnt++;
cout<<cnt;
return 0;
P5729 【深基5.例7】工艺品制作
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N][N][N],n,m,k;
int t;
int main(void)
cin>>n>>m>>k;
cin>>t;
while(t--)
int l1,l2,l3,r1,r2,r3; cin>>l1>>l2>>l3>>r1>>r2>>r3;
for(int i=l1;i<=r1;i++)
for(int j=l2;j<=r2;j++)
for(int z=l3;z<=r3;z++)
a[i][j][z]=1;
int cnt=n*m*k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int z=1;z<=k;z++) if(a[i][j][z]) cnt--;
cout<<cnt;
return 0;
P2550 [AHOI2001]彩票摇奖
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N],st[N],ans[N],n;
int main(void)
cin>>n;
for(int i=0;i<7;i++) cin>>a[i],st[a[i]]=1;
while(n--)
int cnt=0;
for(int i=0;i<7;i++)
int x; cin>>x;
if(st[x]) cnt++;
ans[cnt]++;
for(int i=7;i>=1;i--) cout<<ans[i]<<" ";
return 0;
P2615 [NOIP2015 提高组] 神奇的幻方
#include<bits/stdc++.h>
using namespace std;
const int N=45;
int a[N][N],n;
int main(void)
cin>>n;
a[0][n/2]=1;
int k=2,x=0,y=n/2;
while(k<=n*n)
if( x==0 && y!=(n-1) )
x=n-1,y++;
a[x][y]=k++;
else if( x!=0 && y==(n-1) )
x--,y=0;
a[x][y]=k++;
else if( x==0 && y==(n-1))
x++;
a[x][y]=k++;
else if( x!=0 && y!=(n-1) && !a[x-1][y+1])
x--,y++;
a[x][y]=k++;
else
x++;
a[x][y]=k++;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++) cout<<a[i][j]<<" ";
puts("");
return 0;
P5730 【深基5.例10】显示屏
#include<bits/stdc++.h>
using namespace std;
string a[10][5]=
"XXX","X.X","X.X","X.X","XXX",//0
"..X","..X","..X","..X","..X",//1
"XXX","..X","XXX","X..","XXX",//2
"XXX","..X","XXX","..X","XXX",//3
"X.X","X.X","XXX","..X","..X",//4
"XXX","X..","XXX","..X","XXX",//5
"XXX","X..","XXX","X.X","XXX",//6
"XXX","..X","..X","..X","..X",//7
"XXX","X.X","XXX","X.X","XXX",//8
"XXX","X.X","XXX","..X","XXX"//9
;//2
int main(void)
int n; cin>>n;
string s; cin>>s;
vector<string>ve;
for(int i=0;i<5;i++)
string temp;
for(int j=0;j<s.size();j++)
temp=temp+a[s[j]-'0'][i];
if(j!=(s.size()-1)) temp+='.';
ve.push_back(temp);
for(int i=0;i<ve.size();i++) cout<<ve[i]<<'\\n';
return 0;
P1554 梦中的统计
#include<bits/stdc++.h>
using namespace std;
int a[15];
int main(void)
int l,r; cin>>l>>r;
for(int i=l;i<=r;i++)
int temp=i;
while(temp)
a[temp%10]++;
temp/=10;
for(int i=0;i<=9;i++) cout<<a[i]<<" ";
return 0;
P2141 [NOIP2014 普及组] 珠心算测验
#include<bits/stdc++.h>
using namespace std;
int a[105],n;
int main(void)
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int cnt=0;
for(int i=0;i<n;i++)
int flag=0;
for(int j=0;j<n;j++)
for(int z=0;z<n;z++)
if(i!=j&&i!=z&&j!=z&&a[j]+a[z]==a[i]) flag=1;
if(flag) cnt++;
cout<<cnt;
return 0;
#include<bits/stdc++.h>
using namespace std;
const int N=150;
int a[N],n;
map<int,int>mp;
int main(void)
cin>>n;
for(int i=0;i<n;i++) cin>>a[i],mp[a[i]]++;
int ans=0;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(mp[a[i]+a[j]]) ans++,mp[a[i]+a[j]以上是关于入门4数组的主要内容,如果未能解决你的问题,请参考以下文章