BestCoder Round #85(ZOJ1569尚未验证)
A题
子序列和啊,就要想到前缀和的差。这个转换一定要!记着!那么i到j的一段子序列和Sij%m == 0就等价于(Sj-Si-1)%m == 0 了,那么什么意思呢?就是如果有两段前缀和%m的模是一样的,那么是不是就存在着一段子序列满足条件了,然后注意一下边边角角应该就没问题了。
因为ZOJ坏掉了,所以我尚未验证以下答案的ans是否就是满足条件的序列总数!移步ZOJ1569自行验证。
#include <cstdio> #include <set> #include <map> #include <queue> #include <cmath> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int INF = 0x3f3f3f3f; + ]; int main() { int t; scanf("%d",&t); while(t--) { ,sum = ; memset(num,,sizeof(num)); scanf("%d%d",&n,&m); ; i < n; i++) { scanf("%d",&x); sum = (sum + x) % m; ) ans++; num[ sum ]++; } ; i< m; i++) { ans += (num[i] - ) * num[i] / ; } ) printf("YES\n"); else printf("NO\n"); } ; }
B题(思路)
这个应该算是个贪心。真尼玛= =,脑洞题。
我也不知道怎么讲比较好,自己拿个笔和纸琢磨一下,应该就搞懂了,网上那些题解说的感觉也不好。还是要拿笔,照这个程序,手动模拟一下,应该就能搞懂了。
#include <cstdio> #include <set> #include <map> #include <queue> #include <cmath> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; typedef long long LL; const int INF = 0x3f3f3f3f; ; int a[maxn]; int main() { int t,n,m; scanf("%d", &t); while(t--) { scanf("%d%d", &n, &m); ; i < n - ; i++) scanf("%d", &a[i]); sort(a, a + n - ); LL ans = n; ; i< n - m; i++) ans += a[i]; printf("%I64d\n", ans); } ; }
C题
这题竟然是交一暴力就能A了。。我也是醉了啊。
学个小姿势:素数定理
也就是说1到n以内的素数个数大概是O(sqrt(x) * ln x)个
那么就可以看出这道题,枚举暴力的时间复杂度,其实就是对n=sqrt(x),的前后的一些素数进行枚举嘛,所以最多和1到sqrt(x)范围内的素数个数差不多?所以暴力的时间复杂度O(n4logn2\sqrt[4]{n}log\sqrt[2]{n},所以能直接枚举。
素数,总是要注意一些比2小的数的情况。这道题里面还有什么,是不是正数啊,有没有加LL啊,巴拉巴拉啦。打高亮了。
#include <iostream> #include <cmath> #include <cstdio> #include <algorithm> using namespace std; typedef long long LL; const LL INF = 0x3f3f3f3f3f3f3f3fll; LL x,z,ans; bool judge(LL t) { ) return false; LL temp = t; ; i * i <= temp; i++) { ) { ) return false; temp /= i; } } ans = min(ans,abs(t * t - x)); return true; } void solve() { ; LL z = sqrt(x); if(z * z < x) z++; for(LL i = max(z,2LL);;i++) { if(judge(i)) break; } ;i>;i--) { if(judge(i)) break; } } int main() { int T; scanf("%d",&T); while(T--) { scanf("%I64d", &x); ans = INF; solve(); printf("%I64d\n",ans); } ; }
4√nlog2√n)
BestCoder Round #85(ZOJ1569尚未验证)的更多相关文章
- BestCoder Round #85 hdu5778 abs(素数筛+暴力)
abs 题意: 问题描述 给定一个数x,求正整数y,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次. 输入描述 第一行输入一个整数T 每组数据有一行,一个整 ...
- BestCoder Round #85 hdu5777 domino
domino 题意: 问题描述 小白在玩一个游戏.桌子上有n张多米诺骨牌排成一列.它有k次机会,每次可以选一个还没有倒的骨牌,向左或者向右推倒.每个骨 牌倒下的时候,若碰到了未倒下的骨牌,可以把它推倒 ...
- BestCoder Round #85 hdu5776 sum
sum 题意: 问题描述 给定一个数列,求是否存在连续子列和为m的倍数,存在输出YES,否则输出NO 输入描述 输入文件的第一行有一个正整数T,表示数据组数. 接下去有T组数据,每组数据的第一行有两个 ...
- HDU5780 gcd (BestCoder Round #85 E) 欧拉函数预处理——分块优化
分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后 ...
- HDU5779 Tower Defence (BestCoder Round #85 D) 计数dp
分析(官方题解): 一点感想:(这个题是看题解并不是特别会转移,当然写完之后看起来题解说得很清晰,主要是人太弱 这个题是参考faebdc神的代码写的,说句题外话,很荣幸高中和faebdc巨一个省,虽然 ...
- HDU 5778 abs (BestCoder Round #85 C)素数筛+暴力
分析:y是一个无平方因子数的平方,所以可以从sqrt(x)向上向下枚举找到第一个无平方因子比较大小 大家可能觉得这样找过去暴力,但实际上无平方因子的分布式非常密集的,相关题目,可以参考 CDOJ:无平 ...
- HDU5777 domino (BestCoder Round #85 B) 思路题+排序
分析:最终的结果肯定会分成若干个区间独立,这些若干个区间肯定是独立的(而且肯定是一边倒,左右都一样) 这样想的话,就是如何把这n-1个值分成 k份,使得和最小,那么就是简单的排序,去掉前k大的(注意l ...
- HDU 5776 sum (BestCoder Round #85 A) 简单前缀判断+水题
分析:就是判断简单的前缀有没有相同,注意下自身是m的倍数,以及vis[0]=true; #include <cstdio> #include <cstdlib> #includ ...
- BestCoder Round #85
sum Accepts: 640 Submissions: 1744 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/13107 ...
随机推荐
- <<< jquery向id元素后面动态添加元素
html代码: <div id="main"> <div>1</div> <div>1</div> </div&g ...
- 【原】fiddler修改线上的内容
摘要:当我们线上的代码出bug了,咋办呢?有时候本地的代码跟线上的代码还是运行环境还是有区别的.比如有些封装的方法需要运动到手机上可以调试,而浏览器是无法调试的.如果不想每次修改完再放上到测试环境看效 ...
- 《Python核心编程》18.多线程编程(三)
18.6使用threading模块 #!/usr/bin/env python # -*- coding:utf-8 -*- """从Thread类中派生出一个子例,创建 ...
- js获取当前坐标
<script type="text/javascript"> var position_option = {enableHighAccuracy: false,max ...
- Java都有什么进阶技术
Java都有什么进阶技术? 看到有人给题主推荐<代码整洁之道>,评论有人说那不是JAVA进阶的书- 私以为,一些人对JAVA进阶的理解片面了,JAVA不过也是一门语言,提升和进阶还是内 ...
- C#环境
- live555库中的testH264VideoStreamer实例
1.h264文件的推送 testH264VideoStreamer.cpp文件的开头就定义了 char const* inputFileName = "test.264"; 后面接 ...
- [Data Structure] Bit-map空间压缩和快速排序去重
Bit-map是一种很巧妙的数据存储结构.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value,而Key即是该元素.由于采用了Bit为单位来存储数据,可以大大节省存储空间.Bit-ma ...
- multipart/form-data和application/x-www-form-urlencoded的区别
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型. 下边是说明: application/x-www-form-urle ...
- Windows下,MySQL root用户忘记密码解决方案
同时打开2个命令行窗口,并按如下操作: <1>.在第一个“命令行窗口”输入: cd D:\Program Files\MySQL\MySQL Server 5.5\bin net sto ...