POJ 2265 Bee Maja (找规律)

题目链接

题意 : 给你两个蜂巢的编号,给你一个的编号让你输出在另外一个蜂巢中对应的编号。

思路 : 先将蜂巢分层,第一层一个数,第二层6个数,第三层12个数…………然后用公式表示出第n层的最后一个数是多少,下图中竖着的是x坐标,斜着的是y坐标,往左横坐标+1,往右横坐标-1,以斜线为准往上纵坐标-1,往下纵坐标+1,(1,1)也就是18是第三圈的第一个数,(2,1)也就是20是第四圈的第一个数。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <cstdlib>
 5
 6 using namespace std ;
 7
 8 int main()
 9 {
10     int a ;
11     while(scanf("%d",&a) !=EOF)
12     {
13         if(a == 1)
14         {
15             printf("0 0\n") ;
16             continue ;
17         }
18         int n = 0;
19         while(3 * (n-1) * n + 1 < a)//3 * (n-1) * n + 1表示第n圈的最后一个数是多少
20             n++;//找到该数属于第几圈
21         n--;
22         a -= 3*(n-1)*n+1;
23         int x , y;
24         //分为6个边,每个边上n个数,可以根据题目里的两个图找找规律,看看每条边上的xy的规律是多少
25         if(a<=n)
26         {
27             x = n-a;
28             y = a;
29         }
30         else if(a>n&&a<=2*n)
31         {
32             x = n-a;
33             y = n;
34         }
35         else if(a>2*n&&a<=3*n)
36         {
37             x = -n;
38             y = 3*n-a;
39         }
40         else if(a>3*n&&a<=4*n)
41         {
42             x = a-4*n;
43             y = 3*n-a;
44         }
45         else if(a>4*n&&a<=5*n)
46         {
47             x = a-4*n;
48             y = -n;
49         }
50         else
51         {
52             x = n;
53             y = a-6*n;
54         }
55         printf("%d %d\n",x,y) ;
56     }
57     return 0 ;
58 }

POJ 2265 Bee Maja (找规律)

时间: 2024-11-10 07:57:06

POJ 2265 Bee Maja (找规律)的相关文章

POJ 2229 Sumsets(找规律,预处理)

题目 参考了别人找的规律再理解 /* 8=1+1+1+1+1+1+1+1+1 1 8=1+1+1+1+1+1+1+2 2 3 8=1+1+1+1+2+2 8=1+1+1+1+4 4 5 8=1+1+2+2+2 8=1+1+2+4 6 7 8=2+2+2+2 8=2+2+4 8=4+4 8=8 8~9 */ /* 以下引用自博客:http://blog.csdn.net/scorpiocj/article/details/5940456 如果i为奇数,肯定有一个1,把f[i-1]的每一种情况加一个

POJ 1870 Bee Breeding(找规律)

题目链接 题意 : 给你一个蜂巢状图形,让你找出两个点之间的距离. 思路 : 在做这个题之前可以看一下2265,因为是一种题来着,规律就是我在2265里写的那样,然后就是求距离了,求距离的时候只需考虑两个点的坐标差值(x,y),把坐标差值分成四个项限,x>0且y>0,或x<0且y<0为abs(x+y),其他情况则是max(abs(x),abs(y)).. 1 #include <cstdio> 2 #include <cstring> 3 #include

poj 1781 In Danger(约瑟夫环,找规律)

http://poj.org/problem?id=1781 约瑟夫环的模板,每次数到2的人出圈. 但直接求会TLE,n太大. 打表发现答案和n有关系.当n是2的幂的时候,答案都是1,不是2的幂的时候都与小于2的幂那个数相差差值的2的倍数. #include <stdio.h> #include <iostream> #include <map> #include <set> #include <list> #include <stack&

poj 3090 (欧拉函数,找规律)

poj 3090 (欧拉函数,找规律) 题目: 给出一个n*n的点阵,求从(0,0)出发斜率不相等的直线有多少条. 限制: 1 <= n <= 1000 思路: 先定义sum[i] sum[i] = 0, if(i == 1) sum[i] = sum[i-1] + phi[i], if(i >= 2) ans = sum[n] * 2 + 3 /*poj 3090 题目: 给出一个n*n的点阵,求从(0,0)出发斜率不相等的直线有多少条. 限制: 1 <= n <= 100

POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律

http://poj.org/problem?id=1740 这个博弈一眼看上去很厉害很高大上让人情不自禁觉得自己不会写,结果又是找规律-- 博弈一般后手胜都比较麻烦,但是主要就是找和先手的对应关系,依然看了题解-- 如果所有石头堆两两配对的话后手对先手的每一步都可以对应走一步,那么此时后手必胜. 如果不是两两配对,先手可以通过一次操作使石头堆两两配对,此时的两两配对局面面对的是后手,所以先手必胜. 不是两两配对时的操作:首先将所有非配对推按大小排序(只有一堆直接取没就可以了): 然后显然不配对

poj 3372(找规律)

Candy Distribution Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6033   Accepted: 3351 Description N children standing in circle who are numbered 1 through N clockwise are waiting their candies. Their teacher distributes the candies by

POJ 1870 Bee Breeding

这种烂题我再也不想见到了!! 比模拟题还讨厌!! 题目大意: 根据题目给出的各个数的位置,求某两个数之间的位置. 解题思路: 由给出的位置可以找到一个规律,二维的六个象限的坐标系,计算坐标然后计算距离就行. 下面是代码: #include <set> #include <map> #include <queue> #include <math.h> #include <vector> #include <string> #includ

【ZOJ】3785 What day is that day? ——浅谈KMP应用之ACM竞赛中的暴力打表找规律

首先声明一下,这里的规律指的是循环,即找到最小循环周期.这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”. 先来看一道题 ZOJ 3785 What day is that day? Time Limit: 2 Seconds      Memory Limit: 65536 KB It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? Input There are multiple tes

POJ2505 A multiplication game 博弈论 找规律

http://poj.org/problem?id=2505 感觉博弈论只有找规律的印象已经在我心中埋下了种子... 题目大意:两个人轮流玩游戏,Stan先手,数字 p从1开始,Stan乘以一个2-9的数,然后Ollie再乘以一个2-9的数,直到谁先将p乘到p>=n时那个人就赢了,而且轮到某人时,某人必须乘以2-9的一个数. 题目大意来源http://blog.csdn.net/jc514984625/article/details/71157698 因为谷歌翻译太难懂了,所以总是找题解找题目大