1 /* 用set的好处:最后不必遍历整个数组; 可以存负数的边 ;*/ 2 #include <cstdio> 3 #include <iostream> 4 #include <cstring> 5 #include <algorithm> 6 #include <set> 7 using namespace std; 8 struct point 9 16 }; 17 set <point> S; 18 int a[40]; 19 int n,ans=0; 20 //右,右下,下,左下,左,左上,上,右上 21 //最初dir=6,向上走 22 int dx[]={ +1, +1, 0, -1, -1, -1, 0, +1}; 23 int dy[]={ 0, -1, -1, -1, 0, +1, +1, +1}; 24 void dfs(int dir,int num,int x,int y) //从dir方向分裂,该分裂是第num次分裂,走a[num]步,分裂的点是x,y 25 ); 40 } 41 42 set<point> St; 43 for(auto t:S) //遍历集合中的每一个点,生成对称点 44 { 45 //判断这一层是通过哪个方向的分裂进入到下一层的 46 switch(r%4) 47 { 48 case 1: St.insert( { t.x,y-t.y+y } ); break; //关于y=y对称 49 50 case 2: St.insert( { x+y-t.y,x+y-t.x } ); break; //关于y=-x 对称 没问题 51 52 case 3: St.insert( { x+(x-t.x),t.y } ); break; //关于x=x对称 53 54 case 0: St.insert( { x+t.y-y,y+t.x-x } ); break; //关于y=x对称 55 } 56 } 57 S.insert( St.begin(),St.end() ); 58 59 } 60 int main() 61 { 62 // freopen("a.in","r",stdin); 63 cin>>n; 64 for(int i=1;i<=n;i++) 65 scanf("%d",a+i); 66 67 dfs(6,2,5000,5000); 68 for(int i=0;i<a[1];i++) 69 { 70 S.insert( {5000,5000-i} ); 71 } 72 cout<<S.size()<<endl; //有可能起点也被填充了多次,所以 73 return 0; 74 }
c射线是什么Week4 CSP-M1 C - 可怕的宇宙射线
未经允许不得转载:活检穿刺产品网 » c射线是什么Week4 CSP-M1 C - 可怕的宇宙射线
相关推荐
动物拍片腹部怎么摆【译文推荐】小动物腹部x线摄影术,一文教会你如何拍摄出一张高质量的x光片!
动物拍片腹部怎么摆【病例分享】犬-外科-股骨头切除术
动物拍片腹部怎么摆【影像系列文章连载1】快速入门胸部X线片分析:总论
动物拍片腹部怎么摆《黑天鹅》导演达伦·阿伦诺夫斯基分享拍片工作方式
动物拍片腹部怎么摆伊沙,原名吴文健,文学家,以诗名世。1966年生于四川成都,1989年毕业于北京师范大学中文系,毕业后于西安外国语大学任教至今。现已出版著、译、编作品一百余部。获国内外数十项诗歌奖及其他文学类奖项。应邀出席国内外众多诗歌节、文学节和其他交流活动。代表性诗集有《车过黄河》《鸽子》《蓝灯》《无题》《唐
动物拍片腹部怎么摆11省发文,非必要不采购进口,国产优先!
动物怎么麻醉(W)动物麻醉机
动物怎么麻醉麻醉时,毛孩子是怎么“睡着”又“醒来”的?