“明明说好的已弃ACM了么?”
“然而看到水题根本控制不住双手T^T…正好c语言考试马上要来了, 没事刷刷水题”
tyvj是不兹词Chrome了么..登录不上, 于是手动评测(AC滑稽脸), 发现AC不了的话千万不要来找我(逃)
题目
http://www.tyvj.cn/p/1019
http://www.tyvj.cn/p/1020
http://www.tyvj.cn/p/1021
http://www.tyvj.cn/p/1022
第22题就不做了, 这个我以前做过一个万能转换器, 在我Github的datastructure的OperationPinciple里面
这几道题都是水题…一共做完没超过15分钟…
题解
1019
两个集合排序之后, 大对小进行映射, 然后加到答案里面就好了
答案:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int n;
int a[10005], b[10005];
int i, j, ans;
int main()
{
scanf("%d", &n);
for(i = 1; i <= n; ++i)
scanf("%d%d", &a[i], &b[i]);
sort(a + 1, a + n);
sort(b + 1, b + n);
for(i = 1; i <= n ; ++i)
ans += abs(a[i] - b[n - i + 1]);
printf("%d", ans);
return 0;
}
1020
对每个数直接找最大质因数, 一次遍历下来就ok了
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n, ma, ans;
int i, j, k;
bool isprime(int x){
if(x <= 1) return false;
for(j = 2; j <= sqrt(x); ++j)
if(x % j == 0) return false;
return true;
}
int g(int x){
for(k = x - 1; k >= 2; --k)
if(x % k == 0 && isprime(k)) return k;
}
int main(){
scanf("%d", &n);
for(i = 1; i <= n; ++i){
int num;
scanf("%d", &num);
if(ma < g(num)){
ma = g(num);
ans = num;
}
}
printf("%d", ans);
return 0;
}
1021
每新加一条线段, 都要与之前所有的线段产生贡献, 于是每次输入的时候加上去就好了呀~
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n, ans;
int d[10005];
int i, j;
int main()
{
scanf("%d", &n);
for(i = 1; i <= n; ++i){
scanf("%d", &d[i]);
for(j = i - 1; j >= 1; --j)
ans += abs(d[i] - d[j]);
}
printf("%d\n", 2 * ans);
return 0;
}