[2019杭电多校第四场][hdu6616]Divide the Stones
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6616
题意是说n个数分别为1-n,将n个数分成k堆,能否满足每堆个数相等,数值之和相等。保证n%k=0。
构造题神马的太烦了略略略
我的构造方式是这样的,先判断每堆的个数,然后分奇偶讨论一下
每堆个数为偶时:
可以将n个数分成n/2对,如n为12时,分成1-12,2-11,3-10,4-9,5-8,6-7这样。
然后根据每堆的个数将n/2对分别放入每堆中。
如n=12,k=3时:
第一堆为1-12,2-11。
第二堆为3-10,4-9。
第三堆为5-8,6-7。
这样很好想。
每堆个数为奇时:
先用蛇型方式构造出k堆的前m-2项(m为每堆的个数)
如n=15,k=3时:
1 6 7 X X
2 5 8 X X
3 4 9 X X
三堆分别如上。
然后发现每堆现在的和为14 15 16单调递增。所以我们用剩余元素构造出一个单调递减的序列即可。
剩余元素为10 11 12 13 14 15,我们用15-11,13-12,14-10,构造出一个递减序列即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + ;
int main() {
int t;
scanf("%d", &t);
while (t--) {
ll n, m, k;
scanf("%lld%lld", &n, &k);
m = n / k;
ll sum = n * (n + ) / ;
if (k == ) {
printf("yes\n");
for (int i = ; i <= n; i++)
printf("%d%c", i, i == n ? '\n' : ' ');
}
else if (sum%k) {
printf("no\n");
continue;
}
else {
if (m & ) {
int num = ;
int tot = sum / k;
int tmp = n;
printf("yes\n");
for (int i = ; i <= k; i++) {
for (int j = ; j <= m - ; j++) {
int x;
if (j & )
printf("%d ", x = (j - )*k + i);
else
printf("%d ", x = j * k - i + );
if (i == )
tot -= x;
}
printf("%d %d\n", tmp, tot - tmp);
tot--;
tmp -= ;
if (tmp < n - k)tmp = n - ;
}
}
else {
int cnt = ;
printf("yes\n");
for (int i = ; i <= n / ; i++) {
cnt += ;
printf("%d %d", i, n - i + );
if (cnt == m) {
printf("\n");
cnt = ;
}
else
printf(" ");
}
}
}
}
}
[2019杭电多校第四场][hdu6616]Divide the Stones的更多相关文章
- [2019杭电多校第四场][hdu6623]Minimal Power of Prime
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6623 题目大意为求一个数的唯一分解的最小幂次.即120=23*31*51则答案为1. 因为数字太大不能 ...
- [2019杭电多校第四场][hdu6621]K-th Closest Distance(主席树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 题意为求区间[l,r]内第k小|a[i]-p|的值. 可以二分答案,如果二分的值为x,则判断区间 ...
- [2019杭电多校第四场][hdu6614]AND Minimum Spanning Tree(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6614 题目大意是有一张n个点的完全图,n个点点权为1-n,边权为两点点权按位与(&).求最小生 ...
- 2019杭电多校第四场hdu6623 Minimal Power of Prime
Minimal Power of Prime 题目传送门 解题思路 先打\(N^\frac{1}{5}\)内的素数表,对于每一个n,先分解\(N^\frac{1}{5}\)范围内的素数,分解完后n变为 ...
- 2019杭电多校第四场hdu6621 K-th Closest Distance(二分答案+主席树)
K-th Closest Distance 题目传送门 解题思路 二分答案+主席树 先建主席树,然后二分答案mid,在l和r的区间内查询[p-mid, p+mid]的范围内的数的个数,如果大于k则说明 ...
- 杭电多校第四场 E Matrix from Arrays
Problem E. Matrix from Arrays Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 ...
- 杭电多校第四场 Problem K. Expression in Memories 思维模拟
Problem K. Expression in Memories Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262 ...
- 2019杭电多校第七场 HDU - 6656 Kejin Player——概率&&期望
题意 总共有 $n$ 层楼,在第 $i$ 层花费 $a_i$ 的代价,有 $pi$ 的概率到 $i+1$ 层,否则到 $x_i$($x_i \leq 1$) 层.接下来有 $q$ 次询问,每次询问 $ ...
- 2019 杭电多校第八场 HDU - 6665 Calabash and Landlord 两矩形分平面
题意 给出两个矩形,问这两个矩形把平面分成了几部分. 分析 不需要什么高级技能,只需 “简单” 的分类讨论. (实在太难写了,对拍找出错误都不想改 推荐博客,其中有个很好的思路,即只讨论答案为2,3, ...
随机推荐
- FAT12 img tool
NJU/2019/OS Description: CODE: Main.cpp: /* @author: Edwin Xu @Date:2019/11/13 @Note: just ASCII */ ...
- 【leetcode】1177. Can Make Palindrome from Substring
题目如下: Given a string s, we make queries on substrings of s. For each query queries[i] = [left, right ...
- js设置定时器在规定的日期内替换掉页面
<script type="text/javascript"> window.onload=function(){ var myspan=document.getEle ...
- vs 2010创建Windows服务定时timer程序
vs 2010创建Windows服务定时timer程序: 版权声明:本文为搜集借鉴各类文章的原创文章,转载请注明出处: http://www.cnblogs.com/2186009311CFF/p/ ...
- CF1051F The Shortest Statement Dijkstra + 性质分析
动态询问连通图任意两点间最短路,单次询问. 显然,肯定有一些巧妙地性质(不然你就发明了新的最短路算法了233)有一点很奇怪:边数最多只比点数多 $20$ 个,那么就可以将这个图看作是一个生成树,上面连 ...
- HDU 1298 T9 ( 字典树 )
题意 : 给你 w 个单词以及他们的频率,现在给出模拟 9 键打字的一串数字,要你在其模拟打字的过程中给出不同长度的提示词,出现的提示词应当是之前频率最高的,当然提示词不需要完整的,也可以是 w 个单 ...
- Java——常用类(基础类型数据包装类)
[包装类] 包装类(如Integer.Double等)这些类封装了一个相应的基础数据类型数值,并为其提供了一系列操作. 例如:java.lang.Integer类提供了以下构造方法: ...
- Java——容器(Collection)
Collection是一个接口,定义了一系列的方法. [常见方法]
- POJ 1363 Rails(栈)
题目代号:POJ 1363 题目链接:http://poj.org/problem?id=1363 题目原题: Rails Time Limit: 1000MS Memory Limit: 100 ...
- <知识整理>2019清北学堂提高储备D2
简单数据结构: 一.二叉搜索树 1.前置技能: n/1+n/2+……+n/n=O(n log n) (本天复杂度常涉及) 2.入门题引入: N<=100000. 这里多了一个删除的操作,因此要 ...