2 条题解
-
0齐硕 LV 10 @ 2022-07-29 15:30:05
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;cin>>n;int a[n+1];for(int i=1;i<=n;i++)cin>>a[i];
int minv=3;
for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(abs(a[j]-a[i])%2==0) minv=min(minv,abs(a[j]-a[i])/2);
cout<<minv<<endl;
} -
02021-04-18 16:28:58@
C 黑板上的数(1)题解:
如果存在两个数相等,答案为0
如果存在两个数相差2,则答案为1
如果存在两个数相差4,则答案为2
否则,答案为3,构造方法:任意X -> X-2 X+2 -> X-4 X X+2 -> X-4 X-2 X+2 X+2
需要三步。
本题有O(n)的做法(哈希表)
不过对于本题的数据,最简单的一定是两重循环:
Code:#include<bits/stdc++.h> using namespace std; int main() { int n;cin>>n;int a[n+1];for(int i=1;i<=n;i++)cin>>a[i]; int minv=3; for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(abs(a[j]-a[i])%2==0) minv=min(minv,abs(a[j]-a[i])/2); cout<<minv<<endl; }
- 1
信息
- ID
- 1238
- 难度
- 6
- 分类
- (无)
- 标签
- 递交数
- 26
- 已通过
- 10
- 通过率
- 38%
- 被复制
- 4
- 上传者