hdu 3805 Triangle Conjecture
题意是给出边的长度的,求出边长相等的三角形,输出任意一种答案。边长是1~n的数,每个只能用一次。
其实比较容易可以看出,无论我们怎么操作,只要保持边长总和都是相邻整数就是了。例如现在得到长度为n,n+1,n+2的三条边,可以对应加上m+2,m+0,m+1,从而变成了s+1,s+0,s+2。反正我们在处理123之前,保持着总和是这样的结构就行了。然后最后到了123的时候就能对应加上去,使之相等。
代码如下:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring> using namespace std; const int N = ;
int arr[][N];
typedef pair<int, int> PII; void maketri(int n) {
int sum[];
int t = n;
n = (n - ) * ;
sum[] = (n << ) - ;
sum[] = (n << ) - ;
sum[] = (n << ) - ;
for (int i = ; i < ; i++) arr[i][arr[i][] = ] = n--;
PII tmp[];
while (n > ) {
for (int i = ; i < ; i++) tmp[i] = PII(sum[i], i);
sort(tmp, tmp + );
for (int i = ; i >= ; i--) {
int id = tmp[(i + ) % ].second;
sum[id] += n;
arr[id][++arr[id][]] = n--;
}
}
for (int i = ; i < ; i++) tmp[i] = PII(sum[i], i);
sort(tmp, tmp + );
for (int i = ; i < ; i++) {
int id = tmp[i].second;
sum[id] += n;
arr[id][++arr[id][]] = n--;
}
// for (int i = 0; i < 3; i++) {
// for (int j = 1; j <= arr[i][0]; j++) cout << arr[i][j] << ' '; cout << endl;
// }
printf("%d\n", arr[][]);
for (int i = ; i < t; i++) {
printf("%d %d\n", arr[][i], arr[][i]);
}
for (int i = ; i < t; i++) printf("%d ", arr[][i]);
printf("%d\n", arr[][]);
} int main() {
int T, n;
scanf("%d", &T);
while (T-- && ~scanf("%d", &n)) maketri(n);
return ;
}
——written by Lyon
hdu 3805 Triangle Conjecture的更多相关文章
- HDU 5914 Triangle 数学找规律
Triangle 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Description Mr. Frog has n sticks, who ...
- hdu 4324 Triangle LOVE
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4324 Triangle LOVE Description Recently, scientists f ...
- HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))
Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- HDU 5914 Triangle(打表——斐波那契数的应用)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Problem Description Mr. Frog has n sticks, whos ...
- HDU 4324 Triangle LOVE 拓扑排序
Problem Description Recently, scientists find that there is love between any of two people. For exam ...
- HDU 4324 Triangle LOVE (拓扑排序)
Triangle LOVE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- hdu 6512 Triangle
Problem Description After Xiaoteng took a math class, he learned a lot of different shapes, but Xiao ...
- HDU 6300.Triangle Partition-三角形-水题 (2018 Multi-University Training Contest 1 1003)
6300.Triangle Partition 这个题就是输出组成三角形的点的下标. 因为任意三点不共线,所以任意三点就可以组成三角形,直接排个序然后输出就可以了. 讲道理,没看懂官方题解说的啥... ...
- HDU——1397Goldbach's Conjecture(二分查找+素数打表)
Goldbach's Conjecture Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
随机推荐
- leetcode 839 Similar String Groups
题目 Two strings X and Y are similar if we can swap two letters (in different positions) of X, so that ...
- 安装 Composer
参考百度经验:http://jingyan.baidu.com/article/4f34706ed04013e386b56d72.html Composer下载:https://getcomposer ...
- 转:CentOS上安装LAMP之第三步:MySQL环境及安装过程报错解决方案(纯净系统环境)
这是AMP运行环境中最后配置的环境: 惯例传送门: 1.编译安装MySQL cd /home/zhangatle/tar tar zxvf mysql-.tar.gz cd mysql- cmake ...
- Win7系统中wmiprvse.exe占用CPU高如何解决
该进程的详细路径是在:C:\WINDOWS\System32\Wbem 我们可以在任务管理器中“wmiprvse.exe”进程上单击右键,选择“打开文件位置”即可看到,如果该文件不在该文件夹中,那么 ...
- Hdu 2389 二分匹配
题目链接 Rain on your Parade Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 655350/165535 K (Ja ...
- css Position 上下左中右布局
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- WPF MVVM简单介绍
前面文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 我们不管 ...
- koa上传excel文件并解析
1.中间键使用 koa-body npm install koa-body --save const koaBody = require('koa-body'); app.use(koaBody({ ...
- 数据挖掘算法R语言实现之决策树
数据挖掘算法R语言实现之决策树 最近,看到很多朋友问我如何用数据挖掘算法R语言实现之决策树,想要了解这方面的内容如下: > library("party")导入数据包 > ...
- R语言实现Xbar-R控制图
R语言实现Xbar-R控制图 Xbar-R控制图在质量管理中主要用于对计量数据进行检测,以达到控制对象质量的目的. 虽然用Excel可以轻松实现控制图的操作,不过作为R软件初学者,我试着用仅有的一点R ...