- 郭妍溪 的博客
7月DAY2
- @ 2025-7-16 21:21:06
(进步了)☆: .。. o(≧▽≦)o .。.:☆
A.缺失的数字
(很简单,没有错误) 代码:
#include<bits/stdc++.h>
using namespace std;
int cnt[1010];
int main()
{
freopen("num.in","r",stdin);
freopen("num.out","w",stdout);
int n,minn=1000,maxn=0;
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x<minn) minn=x;
if(x>maxn) maxn=x;
cnt[x]=1;
}
for(int i=minn;i<=maxn;i++)
{
//cout<<cnt[i];
if(cnt[i]!=1)
{
cout<<i;
return 0;
}
}
cout<<maxn+1;
return 0;
}
B.不及格
(也没错) 代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
freopen("score.in","r",stdin);
freopen("score.out","w",stdout);
int n,p,m=0;
cin>>n>>p;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x<p)
{
m++;
}
}
cout<<m;
return 0;
}
C.集会
题意:找到一个距离所有的最近的一个点。 思路:使用枚举法。 错因:循环时弄错范围。 代码:
#include<bits/stdc++.h>
using namespace std;
int a[110];
int b[110];
int main()
{
freopen("jihui.in","r",stdin);
freopen("jihui.out","w",stdout);
long long n,maxm=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]>maxm) maxm=a[i];
}
long long ans=1e9;
for(int i=1;i<=maxm;i++)
{
long long minn=0;
for(int j=1;j<=n;j++)
{
minn+=(a[j]-i)*(a[j]-i);
}
ans=min(ans,minn);
}
cout<<ans;
return 0;
}
D.统计区间
题意:共有多少组满足Al∼Ar的和等于K的l和r。 错因:这题我真不会! 代码:
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=2e5+10;
ll a[N],s[N],n,k;
int main()
{
freopen("tjqj.in","r",stdin);
freopen("tjqj.out","w",stdout);
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s[i]=s[i-1]+a[i];
}
unordered_map<ll,ll>mp;
ll ans=0;
for(int i=0;i<=n;i++)
{
ans+=mp[s[i]-k];
mp[s[i]]++;
}
cout<<ans<<endl;
return 0;
}
E.旅行
题意:有N个城,M条路,求有多少种旅游方式。 错因:没看懂。 代码:
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int n;
vector<int> adj[2010];
bool vis[2010];
void dfs(int u)
{
if (vis[u]) return;
vis[u] = 1;
for (int i = 0; i < adj[u].size(); i++)
{
int j = adj[u][i];
dfs(j);
}
}
int main()
{
freopen("lx.in","r",stdin);
freopen("lx.out","w",stdout);
int n, m, ans = 0;
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
int a, b;
cin >> a >> b;
adj[a].push_back(b);
}
for (int i = 1; i <= n; i++)
{
memset(vis, 0, sizeof vis);
dfs(i);
for (int j = 1; j <= n; j++)
if (vis[j]) ans++;
}
cout << ans;
return 0;
}
总结: 这次会的都对了,不会的还要努力。