BestCoder Round #85
来源:互联网 发布:eve捏脸数据男 编辑:程序博客网 时间:2024/06/05 01:51
第一题:http://acm.hdu.edu.cn/showproblem.php?pid=5776
解题思路:
维护前缀和,然后枚举m的倍数,在利用哈希去找即可。
#include<iostream>#include<cstdio>#include<cstring>#include<map>using namespace std;const int maxn = 100005;int n,m,sum[maxn],a[maxn];map<int,int> Map;int main(){int t;scanf("%d",&t);while(t--){Map.clear();scanf("%d%d",&n,&m);for(int i = 1; i <= n; i++)scanf("%d",&a[i]);bool flag = false;int cnt = 0;Map[sum[0]] = ++cnt;for(int i = 1; i <= n && !flag; i++){sum[i] = sum[i-1] + a[i];int k = 1;while(k * m <= sum[i]){int tmp = sum[i] - k * m;if(Map.find(tmp) != Map.end()){flag = true;break;}k++;}Map[sum[i]] = ++cnt;}if(flag) printf("YES\n");else printf("NO\n");}return 0;}
第二题:http://acm.hdu.edu.cn/showproblem.php?pid=5777
解题思路:
距离越远,就越要用那k-1次去推,最后用1次把所有都推了就好了,所以是先sort一遍,把最大的k-1个去掉即可。
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N=1e5+7;int a[N],t,n,k;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(int i=2;i<=n;i++)scanf("%d",a+i); sort(a+1,a+n+1); long long ans=n; for(int i=1;i<=n-k+1;i++)ans+=a[i]; printf("%I64d\n",ans); } return 0;}
第三题:http://acm.hdu.edu.cn/showproblem.php?pid=5778
解题思路:思路:由于y质因数分解式中每个质因数均出现2次,那么y是一个完全平方数,设y=z*z,题目可转换成求z,使得每个质因数出现1次. 我们可以暴力枚举z,检查z是否符合要求,显然当z是质数是符合要求,由素数定理可以得,z的枚举量在logn级别
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>using namespace std;const long long INF = 0x7fffffffffffffffll;long long ans;long long n;bool check(long long x){ if(x < 2) return false; long long t = x; for(long long i = 2;i * i <= x;i++) { if(x % i == 0) { if(x % (i * i)==0)//出现了超过一次 { return false; } x /= i; } } ans=min(ans,abs(t*t-n)); return true;}int main (){ int t; cin>>t; while(t--) { scanf("%I64d",&n); long long x=(long long)(sqrt(n * 1.0)+0.5); int flag = 0; ans = INF; for(int i=0;;i++) { if(check(x + i)) flag = 1; if(check(x - i)) flag = 1; if(flag == 1) break; } printf("%I64d\n",ans); } return 0;}
0 0
- BestCoder Round #85
- BestCoder Round #85
- BestCoder Round #85题解
- BestCoder Round #85
- BestCoder Round #85
- BestCoder Round #85
- BestCoder Round #85
- BestCoder Round #85 前三题
- BestCoder Round #85题解
- BestCoder Round #85题解报告
- BestCoder Round #85 1001 1002
- BestCoder Round #85 题解(待续)
- BestCoder Round #85-1003 abs
- BestCoder Round #85 前三题题解
- Bestcoder round#85 解题报告
- BestCoder Round #85 1001 sum
- BestCoder Round #85题解报告
- BestCoder Round #85-1005 gcd
- background-position
- 关于RNN的小结
- nyoj119
- APP界面设计建议
- UVA 11732 "strcmp()" Anyone?
- BestCoder Round #85
- HDU 5755 高斯消元
- 杂记----安全感
- gdb调试core文件2
- LeetCode 122 Best Time to Buy and Sell Stock II
- 把数组拼接成一个字符串 */
- C++编程之内存管理(再谈)
- 《Windows环境下32位汇编语言程序设计(第2版)》-chapter10
- 把字符串反转