“玲珑杯”ACM比赛 Round #18 A 计算几何你瞎暴力(瞎暴力)

题目链接:http://www.ifrog.cc/acm/problem/1143

题意:如果从一个坐标为 (x1,y1,z1)(x1,y1,z1)的教室走到(x2,y2,z2)(x2,y2,z2)的距离为 |x1−x2|+|y1−y2|+|z1−z2|

那么有多少对教室之间的距离是不超过R的呢?

题解:暴力暴力,把点记录在三维数组里面,然后暴力搜寻符合条件的点,值得注意的是在同个位置可能有不同的教室(明显不符合现实,蜜汁尴尬(逃.....)

不同位置直接暴力,会重复计算一次,比如点(1,2,3)和点(4,5,6)反过来会多计算一次,把相同位置的教室计算值也扩大一倍,最后一起除以2。

数据有点大,用int会爆,要用long long 。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 typedef long long LL;
 7 LL map[11][11][11];
 8 LL ans[33];
 9
10 int main(){
11     LL t;
12     cin>>t;
13     while(t--){
14         memset(map,0,sizeof(map));
15         memset(ans,0,sizeof(ans));
16
17         LL x,y,z,n,q,R;
18         cin>>n>>q;
19
20         for(int i=1;i<=n;i++){
21             cin>>x>>y>>z;
22             map[x][y][z]++;
23         }
24
25
26         for(int i=0;i<=10;i++)
27         for(int j=0;j<=10;j++)
28         for(int k=0;k<=10;k++)
29         for(int a=0;a<=10;a++)
30         for(int b=0;b<=10;b++)
31         for(int c=0;c<=10;c++){
32             if(map[i][j][k]&&map[a][b][c]){
33                 if(i==a&&j==b&&k==c){
34                     LL t1=map[i][j][k];
35                     ans[0]+=(t1-1)*t1;
36                 }
37                 else{
38                     LL t2=abs(i-a)+abs(j-b)+abs(k-c);
39                     ans[t2]+=map[i][j][k]*map[a][b][c];
40                 }
41             }
42         }
43
44         for(int i=0;i<=30;i++) ans[i]/=2;
45         for(int i=1;i<=30;i++) ans[i]+=ans[i-1];
46
47         for(int i=1;i<=q;i++){
48             cin>>R;
49             if(R>30) R=30;
50             cout<<ans[R]<<endl;
51         }
52
53     }
54     return 0;
55 }
时间: 2024-12-14 18:10:18

“玲珑杯”ACM比赛 Round #18 A 计算几何你瞎暴力(瞎暴力)的相关文章

“玲珑杯”ACM比赛 Round #18 A 暴力水 C dp

“玲珑杯”ACM比赛 Round #18 计算几何你瞎暴力 题意:如果从一个坐标为 (x1,y1,z1)的教室走到(x2,y2,z2)的距离为 |x1−x2|+|y1−y2|+|z1−z2|.那么有多少对教室之间的距离是不超过R的呢? tags:坐标范围很小,瞎暴力 #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring>

“玲珑杯”ACM比赛 Round #18

"玲珑杯"ACM比赛 Round #18 Start Time:2017-07-15 12:00:00 End Time:2017-07-15 15:46:00 A -- 计算几何你瞎暴力 Time Limit:5s Memory Limit:256MByte Submissions:1764Solved:348 DESCRIPTION 今天HHHH考完了期末考试,他在教学楼里闲逛,他看着教学楼里一间间的教室,于是开始思考: 如果从一个坐标为 (x1,y1,z1)(x1,y1,z1)的

“玲珑杯”ACM比赛 Round #18 图论你先敲完模板(dp)

题目链接:http://www.ifrog.cc/acm/problem/1146 题意:中文题 题解:状态转移方程:dp[ i ] = min ( dp[ i ] ,dp[ j ] + 2xi-xj+a ). dp[1]=0,第一个点需要消耗的能量为0,从第二个点(假设这个点为A)开始,往前遍历一遍点(假设这个点为B)假定B点为休息点,然后直接到A点需要的能量, 依次然后找出最小能量,因为从第二个点依次往后,每次前面的都已经最优了,所以最后n位置得到的就是答案了. 然后有几个注意点INF尽量弄

“玲珑杯”ACM比赛 Round #19题解&amp;源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】

A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT 5 20 1314 SAMPLE OUTPUT 5 21 1317 SOLUTION “玲珑杯”ACM比赛 Round #19 题目链接:http://www.ifrog.cc/acm/problem/1145 分析: 这个题解是官方写法,官方代码如下: 1 #include <iostream>

“玲珑杯”ACM比赛 Round #1

Start Time:2016-08-20 13:00:00 End Time:2016-08-20 18:00:00 Refresh Time:2017-11-12 19:51:52 Public A -- Absolute Defeat Time Limit:2s Memory Limit:64MByte Submissions:394Solved:119 DESCRIPTION Eric has an array of integers a1,a2,...,ana1,a2,...,an.

“玲珑杯”ACM比赛 Round #19 B -- Buildings (RMQ + 二分)

“玲珑杯”ACM比赛 Round #19 Start Time:2017-07-29 14:00:00 End Time:2017-07-29 16:30:00 Refresh Time:2017-07-29 16:42:55 Private B -- Buildings Time Limit:2s Memory Limit:128MByte Submissions:590Solved:151 DESCRIPTION There are nn buildings lined up, and th

“玲珑杯”ACM比赛 Round #1 A -- Absolute Defeat

DESCRIPTION Eric has an array of integers a1,a2,...,ana1,a2,...,an. Every time, he can choose a contiguous subsequence of length kk and increase every integer in the contiguous subsequence by 11. He wants the minimum value of the array is at least mm

玲珑杯”ACM比赛 Round #19 B 维护单调栈

1149 - Buildings Time Limit:2s Memory Limit:128MByte Submissions:588Solved:151 DESCRIPTION There are nn buildings lined up, and the height of the ii-th house is hihi. An inteval [l,r][l,r](l≤r)(l≤r) is harmonious if and only if max(hl,…,hr)−min(hl,…,

“玲珑杯”ACM比赛 Round #12 (D) 【矩阵快速幂的时间优化】

//首先,感谢Q巨 定义状态向量b[6] b[0]:三面临红色的蓝色三角形个数 b[1]:两面临红色且一面临空的蓝色三角形个数 b[2]:一面临红色且两面临空的蓝色三角形个数 b[3]:三面临红色的黄色三角形个数 b[4]:两面临红色且一面临绿+的黄色三角形个数 b[5]:一面临红色且两面临绿+的黄色三角形个数 转移矩阵: [3 1 0 0 0 0;0 2 2 0 0 0;0 1 3 0 0 0;3 2 1 0 0 0;0 0 0 6 3 0;0 0 0 0 2 4] 最朴素的TLE代码 #in