题解报告:hdu 1220 Cube

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1220

问题描述

  Cowl擅长解决数学问题。 有一天,一位朋友问他这样一个问题:给你一个边长为N的立方体,它被与其侧面平行的平面切割成N * N * N个单位立方体。 两个单位立方体可能没有共同点或两个共同点或四个共同点。 你的工作是计算有多少对不超过两个公共点的单位立方体。处理到文件的结尾。

输入

  会有很多测试用例。 每个测试用例只会在一行中给出一个立方体的边长N. N是正整数(1 <= N <= 30)。

输出

   对于每个测试用例,您应该在一行中输出上面描述的对的数量。

示例输入 1    2    3

示例输出 0   16   297

暗示 :结果不会超过int类型。

解题思路:这是一道组合数学题。题目的意思就是有一个N*N*N的立方体,将其分成1*1*1的单位立方体,则任意两个立方体的交点(顶点)个数为0,1,2,4个,现在要求交点数小于等于2个的立方体对数有多少对。N*N*N的立方体可以分成N*N*N个单位立方体,而任选两个立方体组成的情况一共有C(N*N*N,2)对 (即:N^3*(N^3-1)/2对)。公共点为4的对数:一列有n-1对(n个小方块,相邻的两个为一对符合要求),一个面的共有 n^2列,选上面和左面,前面三个方向,同理可得,故总数为:3*n^2(n-1)。所以不超过两个公共点的单位立方体的对数为N^3*(N^3-1)/2-3*n^2(n-1)。

AC代码:

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5     int n;
6     while(cin>>n)
7         cout<<(n*n*n*(n*n*n-1)/2-3*n*n*(n-1))<<endl;//推导公式
8     return 0;
9 }

原文地址:https://www.cnblogs.com/acgoto/p/8689211.html

时间: 2024-10-03 13:14:58

题解报告:hdu 1220 Cube的相关文章

题解报告:hdu1220 Cube

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1220 做题思路:先在n^n^n个单位立方体中取2个(即一对),然后减去有公共点为4的立方体对数,即为所求. 总的对数:n*n*n的立方体可以分成n*n*n个单位立方体,所以一共有C(n*n*n,2)对 (即:n^3*(n^3-1)/2).公共点为4的对数:一列有n-1对(n个小方块,相邻的两个为一对).一个面的共有 n^2列(从前往后看). 底面,左面,前面三个方向相同.故总数为:3*n^2*(n-

HDU(1220)——Cube

Problem Description Cowl is good at solving math problems. One day a friend asked him such a question: You are given a cube whose edge length is N, it is cut by the planes that was paralleled to its side planes into N * N * N unit cubes. Two unit cub

hdu 1220 Cube 简单数论

Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1516    Accepted Submission(s): 1206 Problem Description Cowl is good at solving math problems. One day a friend asked him such a question:

hdu 1220 Cube (组合数学)

/* 给你一个边长n的正方体,切割成n*n*n个单位体积的小正方体,求所有公共顶点数<=2的小正方体的对数. 公共点的数目可能有:0,1,2,4. 我们用总的对数减掉有四个公共点的对数就可以了. 总的对数:n^3*(n^3-1)/2(一共有n^3块小方块,从中选出2块) 而4个交点的立方体对是两个立方体共面的情况, 所以我们只要求出大的立方体一共有多少个单位面积的公共面就可以了, 既所有单位立方体的面数6*n^3减去在大立方体表面的面数6*n^2就可以了,, 所以结果为:n^3 * (n^3-1

题解报告:hdu 1162 Eddy&#39;s picture

Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result i

题解报告(CDUT暑期集训——第三场)

题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口算法 按着题解的从后往前做(ps:菜是原罪 AC代码 #include<stdio.h> #include<iostream> #include<math.h> #include<algorithm> #include<string.h> #incl

线段树&#183;题解报告

线段树·题解报告 参考资料 ·课件 线段树 --刘汝佳 统计的力量,线段树全接触 --张昆玮 ·Blog [完全版]线段树 从普通线段树到zkw线段树 [总结][数据结构]ZKW线段树详解 选题目录 · Hdu1166 敌兵布阵(单点更新,区间求和) · Hdu1754 I Hate It(单点更新,RMQ) · Hdu3308 LCIS(单点更新,区间并) · Poj3468 A Simple Problem with Integers(区间加减,区间求和) · Poj2777 Count C

HDU 1221: Cube

HDU 1221: Cube ///@author Sycamore, ZJNU ///@accepted_on 2017-01-24 #include<iostream> using namespace std; int main() { int N; while (cin >> N) cout << N*N*N *(N*N*N - 1) / 2 - 3 * (N - 1)*N*N << endl; return 0; }

HDU - 3584 Cube (三维树状数组 + 区间改动 + 单点求值)

HDU - 3584 Cube Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status Description Given an N*N*N cube A, whose elements are either 0 or 1. A[i, j, k] means the number in the i-th row , j-th column and k-th layer. I