HZOJ 分组
打了好多个代码。
对于测试点1,11:手动模拟。
void QJ1_11()
{
if(n==)
{
int tk;
if(pd(a[]+a[]))tk=;
else tk=;
if(tk<=k)
{
puts("");
puts("");
}
else
{
puts("");
printf("%d\n",);
}
exit();
}
}
对于测试点2~6:
可以用贪心的方法,从后往前扫,每遇到一个数,判断是否可以加入当前段,不行则断开。复杂度$n^2$.
void QJ2_6()
{
if(k==)
{
if(n==||n==||n==||n==)
{
LL l=n,num=;
for(int i=n;i;i--)
{
for(int j=l;j>i;j--)
if(pd(a[i]+a[j]))
{
num++,ans[++cnt]=i,l=i;break;
}
}
if(ans[cnt]==&&cnt!=){cnt--;}
else num++;
printf("%lld\n",num);
for(int i=cnt;i;i--)
printf("%lld ",ans[i]);
exit();
}
}
}
对于测试点7~10:
n=131072,那么换一种枚举方法,判断是否存在啊a[j]+a[i]=x^2,开一个桶,只需要枚举x(1~512)即可。复杂度n*√n。
void QJ7_10()
{
if(k==)
{
if(n==)
{
int num=;
for(int i=n;i;i--)
{
for(int j=;j&&j*j>a[i];j--)
if(t[j*j-a[i]])
{
num++,ans[++cnt]=i;ma(t);break;
}
t[a[i]]=;
}
if(ans[cnt]==&&cnt!=){cnt--;}
else num++;
printf("%d\n",num);
for(int i=cnt;i;i--)
printf("%lld ",ans[i]);
exit();
}
}
}
对于测试点12~25:
同样的贪心方法,将矛盾的两只兔子连边,如果此时是一张二分图,那么一定可以将其分成两个小团体使其不发生矛盾,k=2,否则就断开。理论复杂度$n^2$,实际上因为点比较水(可能出题人觉得这是$n^3$,所以没有卡这个算法),可以A掉,跑的还挺快。
void QJ12_25()
{
if(k==)
// if(n==4||n==8||n==16)
{
int num=,l=n;
for(re int i=n;i;i--)
{
for(re int j=l;j>i;j--)
if(pd(a[i]+a[j]))
add(i,j),add(j,i);
for(re int j=l;j>=i;j--)co[j]=;
if(!dfs(i,))
{
l=i;num++;ans[++cnt]=i;
for(re int j=l;j>=i;j--)first[j]=;
num_e=;
}
}
if(ans[cnt]==&&cnt!=){cnt--;}
else num++;
printf("%d\n",num);
for(re int i=cnt;i;i--)
printf("%lld ",ans[i]);
exit();
}
}
同样对k=2的正解:

这个我还没打,先坑着。
HZOJ 分组的更多相关文章
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- xamarin android ListView手动分组
xamarin的listview控件其实自带有分组方法,关于xamarin listview的自带分组方法请自行参考官方文档,我这里只写自己写的分组方法.xamarin自带的分组好是好,功能多,但是加 ...
- [Java Collection]List分组之简单应用.
前言 今天有一个新需求, 是对一个List进行分组, 于是便百度到一些可用的代码以及我们项目使用的一些tools, 在这里总结下方便以后查阅. 一: 需求 现在我们一个数据库表t_series_val ...
- TSQL 分组集(Grouping Sets)
分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- SolrNet高级用法(分页、Facet查询、任意分组)
前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...
- MongoDB分组汇总操作,及Spring data mongo的实现
转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...
- 利用XML FOR PATH 合并分组信息
-- ================================================ -- Description:合并分组内容 -- Author:夏保华 -- Date:2009 ...
- sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...
随机推荐
- 关于github 代码管理,协作开发
公司要用github 进行项目管理, 了解了一下github相关权限管理. 并做笔记如下: 个人账户可以建立公有/私有 repository , 公有的全天下的人都能看到,私有的全天下人都看不到 ...
- Javascript模块化编程(一)模块的写法最佳实践
Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块但是,Javascript不是一种模块化编程语言,它不支持类clas ...
- javax.el.PropertyNotFoundException: Property 'studentAge' not found on type com.hs.model.StudentModel
mi明明已经把这个字段重构了,为啥还这样提示呢?整个工程全部 查找也找不到这个字段了啊
- JS 防止重复提交
JS 防止重复提交表单 利用flag自定义设置,缺点就是当页面有很多类似操作时,每次需要一个 方法二: var newtime = 0; function sub(){ var Today = new ...
- 洛谷P1978 集合 [2017年6月计划 数论08]
P1978 集合 题目描述 集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合.集合有如 下的特性: •无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的. •互异性 ...
- web前端学习(二)html学习笔记部分(7)--web存储2
1.2.20 web存储 1.2.20.1 Web存储-客户端存储数据新方法 1.两种方式 1)localStorage - 没有时间限制的数据存储 2)针对一个sessionStorage - ...
- 第八章—BOM(一)
ECMAscript是JS的核心,而要在web上使用JS,那么BOM无疑是真正的核心.BOM叫浏览器对象模型,它提供了许多对象,用于访问浏览器的功能. BOM的核心对象是window,它表示浏览器的一 ...
- 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。
百度为何开源深度机器学习平台? 有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举. 5月20日,百度在github上开源了其 ...
- JS---案例:图片跟着鼠标飞的最终版本
案例:图片跟着鼠标飞的最终版本 换了个好看的糖果照片,想给博客首页加上,但是加上后,应该是overwrite原来的html,所以光有鼠标跟着飞的效果,原来的功能都不能用了 放入common.js &l ...
- 微信小程序之上拉加载更多
loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...