POJ 1702

  1 #include <iostream>
  2 #include <cmath>
  3 #define MAXN 100
  4 using namespace std;
  5
  6 void fun(int num);
  7 void fun_1();
  8
  9 int ans[MAXN];
 10
 11 struct node
 12 {
 13     int ans[MAXN];
 14     int len;
 15     node()
 16     {
 17         memset(ans,0,sizeof(ans));
 18         len = 0;
 19     }
 20 };
 21
 22 node _l;
 23 node _r;
 24
 25 int main()
 26 {
 27     //freopen("acm.acm","r",stdin);
 28     int test;
 29     int i;
 30     int num;
 31
 32     cin>>test;
 33     while(test --)
 34     {
 35         memset(_r.ans,0,sizeof(_r.ans));
 36         memset(_l.ans,0,sizeof(_l.ans));
 37         cin>>num;
 38         fun(num);
 39         fun_1();
 40         bool boo;
 41         int tem = 0;
 42         boo = false;
 43     //    int p = -1;
 44     //    bool ok = false;
 45         int index = 0;
 46         for(i = 0; i < MAXN; ++ i)
 47         {
 48             if(_l.ans[i] != 0)
 49             {
 50                 ans[index ++]  = pow((double)3,tem);
 51                 boo = true;
 52             }
 53
 54             ++ tem;
 55         }
 56         if(boo)
 57         {
 58             for(i = 0; i < index-1; ++ i)
 59             {
 60                 cout<<ans[i]<<",";
 61             }
 62             cout<<ans[index-1]<<" ";
 63         }
 64         else
 65         {
 66             cout<<"empty ";
 67         }
 68
 69
 70
 71         index = 0;
 72         boo = false;
 73         tem = 0;
 74         for(i = 0; i < MAXN; ++ i)
 75         {
 76             if(_r.ans[i] != 0)
 77             {
 78                 ans[index ++]  = pow((double)3,tem);
 79                 boo = true;
 80             }
 81
 82             ++ tem;
 83         }
 84         if(boo)
 85         {
 86             for(i = 0; i < index-1; ++ i)
 87             {
 88                 cout<<ans[i]<<",";
 89             }
 90             cout<<ans[index-1];
 91         }
 92         cout<<endl;
 93     }
 94 }
 95
 96 void fun(int num)
 97 {
 98     int i;
 99     int tem;
100     i = 0;
101     while(num)
102     {
103         _r.ans[i ++] = num%3;
104         num /= 3;
105     }
106     _r.len = i;
107 }
108
109 void fun_1()
110 {
111     int i;
112     int c = 0;
113     for(i = 0; i < MAXN; ++ i)
114     {
115         _r.ans[i] += c;
116         if(_r.ans[i] == 2)
117         {
118             _r.ans[i] = 0;
119         //    _r.ans[i+1] += 1;
120             c = 1;
121             _l.ans[i] += 1;
122         }
123         else if(_r.ans[i] == 3)
124         {
125             _r.ans[i] = 0;
126         // _r.ans[i+1] += 1;
127             c = 1;
128         }
129         else
130         {
131             c = 0;
132         }
133
134
135     }
136 }
时间: 2025-01-06 16:23:05

POJ 1702的相关文章

poj 1702 Eva&#39;s Balance(平衡三进制)

题目大意:给你一个天平,和一些砝码,只是这些砝码有点特殊,它的重量是1,3,9,27,--3^n.让你把一些砝码和一个给定的重量的物体放在左边,另一些砝码放在右边,使天平平衡(每个砝码最多用一个) 思路(平衡三进制):比如我们假设这个物体的重量是20,那么我们可以这样做.首先我们把20(十进制)转化为三进制(202),然后我们按照一定的规则,把这些数转化成0,1,-1表示.从低位到高位,我们这样来转化.当我们遇到一个2的时候,那么下一位加1,同时2变成-1.当我们遇到3的时候,那么下一位加1,同

POJ 3449 Geometric Shapes --计算几何,线段相交

题意: 给一些多边形或线段,输出与每一个多边形或线段的有哪一些多边形或线段. 解法: 想法不难,直接暴力将所有的图形处理成线段,然后暴力枚举,相交就加入其vector就行了.主要是代码有点麻烦,一步一步来吧. 还有收集了一个线段旋转的函数. Vector Rotate(Point P,Vector A,double rad){ //以P为基准点把向量A旋转rad return Vector(P.x+A.x*cos(rad)-A.y*sin(rad),P.y+A.x*sin(rad)+A.y*co

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目(转)

http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (

Poj 题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目分类(转)

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea