一道阿姆斯特朗回旋好题 HDU - 5979
2001年5月8日,阿姆斯特朗(Armstrong, 1929-2013) 教授发明了一种名为“阿姆斯特朗回旋加速喷气式阿姆斯特朗加密”的加密算法,算法从未公开,直至2013阿姆斯特朗教授逝世后,其生前的研究手稿被其儿子小阿姆斯特朗(Xiaoarmstrong,1995-)发表后才得以被大众所知。一天,小阿姆斯特朗突然对阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法产生了兴趣,她决定研究一下这个阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法,但由于阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法十分复杂,于是小阿姆斯特朗决定今天只研究阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法的第一步。于是,她找来了一道acm训练题进行了阿姆斯特朗回旋加速喷气式阿姆斯特朗加密,在进行完阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法的第一步之后,这道题变成了下面这串数字:
 
1746953559 543520353 1886593121 1634296677 1868767340 2019915374 1634235424 1818304628 1869619308 1937010281 1986095136 1752440933 1634934885 1679844717 1635021673 543515502 1864396660 1768384882 1869619310 779382377 544424202 544567161 2003791467 543520544 544104803 544499047 1702043726 1852140903 1629516660 1919251558 1852402720 1735289195 1701344288 1769107232 544106855 1852403568 1851859060 1752440932 1869619301 1937010281 544108320 543516788 1986948963 539916389 1663067479 1629515361 544174956 544499047 1851859022 1936026727 1952801312 1852138871 1667327264 1634738280 1864397417 1752440934 1701716069 1651009385 1931506287 1701668709 779318382 2003783178 1986619168 1870209125 1752440949 1633951845 1629512052 1953853282 1701344288 1735287072 539780460 1634036848 1663067507 1969450081 1702125932 1701344288 1701994784 1718558817 1701344288 1852793632 779642230 1225394734 1414877262 1701336074 1629513074 1830839666 1769237621 543517808 1953719668 1935762208 170816357 543516756 1936877926 1768693876 1663067502 1635020399 544435817 544175988 1702129257 544367975 1851859022 541335652 1768189545 1769234787 1948280686 1847616872 1700949365 1718558834 1701344288 1768910880 544437358 543452769 1768253556 1768169586 1851880563 1948280163 1919885423 1852401513 858267694 540884000 1027350606 741355808 1008742688 541335613 824196412 1409952048 1847616872 544503909 1701734764 1868767347 1767994478 541991022 1702129257 1936876903 1684957472 1952539497 543649385 543516788 1818717793 539915109 543516756 544044403 1948280431 1310745960 1836412448 1936876898 544434464 1635216481 857764729 170799158 1414876938 173299024 544370502 1751343461 1936028704 1633886324 1864394099 1970304117 1852776564 1818632293 544498031 1651340654 544436837 1768189545 1769234787 1948280686 1629513064 543253874 1948280431 1663067496 1702260335 1411395192 1881171304 1953393010 1981834341 1702194273 1752375411 1684829551 1986095136 540221541 1768384868 1629516660 1919251558 1701344288 1667589152 1818324329 1768910880 170816622 0
 
现在,请你来做这道acm训练题,对阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法不了解的同学请看Hint。
Input

请看题目描述

Output

请看题目描述

Sample Input
4 1
90 90 90 90
6 1
60 60 60 60 60 60
Sample Output
2.000
2.598
Hint
关于阿姆斯特朗回旋加速喷气式阿姆斯特朗加密算法的第一步:
该算法首先读入一段文本,该文本的每个字符仅占1字节,直到结束。
然后,该算法会将连续的每4个字节的二进制位按逆序连接,凑成一个整数,并在末尾加0。例如:
读入:
abcdefgh
(二进制:01100001(a) 01100010(b) 01100011(c) 01100100(d) 01100101(e) 01100110(f) 01100111(g) 01101000(h))
转换后:
1684234849 1751606885 0
(二进制:01100100011000110110001001100001 01101000011001110110011001100101 0)
(01100100(d)01100011(c)01100010(b)01100001(a) 01101000(h)01100111(g)01100110(f)01100101(e) 0)

首先你要解密这个密码得到题目,每个大数字是由四个字母的二进制倒着排列得到的总的二进制又换算成了整数,所以第一种方法对于输入的一个数字a,a%256得到后八位二进制的十进制值,然后转成字符型输出,然后在移动八位继续输出,直到这个数移完位置,继续输入新的数字重复操作,代码如下

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){long long a;while(cin >> a){while(a){cout << (char)(a%256);a = a >> 8;}}return 0;
}

方法二则巧妙的运用了数组储存的特性,因为对于一个大数,在一个数组中它的二进制就是倒着存放的,那么转成字符输出时,恰好就正过来了,所以直接输入整个数组,把数组转成字符串类型char*,输出就可以解密密码

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int a[10000];
int main(){int cnt,i;i = 0;while(cin >> a[i]){if(!a[i])break;i++;}cout << (char*)a << endl;return 0;
}

截图:

所以这个题目是这样的

Convex

We have a special convex that all points have the same distance to origin point.
As you know we can get N segments after linking the origin point and the points on the convex. We can also get N angles between each pair of the neighbor segments.
Now give you the data about the angle, please calculate the area of the convex
Input
There are multiple test cases.
The first line contains two integer N and D indicating the number of the points and their distance to origin. (3 <= N <= 10, 1 <= D <= 10)
The next lines contain N integers indicating the angles. The sum of the N numbers is always 360.
Output
For each test case output one float numbers indicating the area of the convex. The printed values should have 3 digits after the decimal point.
Sample Input
4 1
90 90 90 90
6 1
60 60 60 60 60 60
Sample Output
2.000
2.598

题目说每一个segment是这个点和原点相连并且这个点和相邻点相连的面积,所以这是求三角形面积,最后求和就可以

其中角度换算成弧度,度数*π/180

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define pi 3.1415926
int main(){int n;double d;while(cin >> n >> d){double sum = 0.0;double degree;int i;for(i = 0; i < n; i++){cin >> degree;sum += 0.5*d*d*sin(degree*pi/180.0);//求面积,相加}printf("%.3f\n",sum);}return 0;
}

一道阿姆斯特朗回旋好题( Convex HDU - 5979)相关推荐

  1. [3.3训练赛]One-Dimensional(矩阵快速幂),Freda的迷宫(无向图强连通分量+并查集),一道防AK好题

    文章目录 T1:One-Dimensional title solution code T2:[NOIP模拟赛]Freda的迷宫 title solution code T3:[NOIP模拟赛]一道防 ...

  2. 一道反序列化的CTF题分享

    文章目录 一.源码分析 二.传参分析 三.小结 一.源码分析 首先看源代码: <?php Class readme{public function __toString(){return hig ...

  3. 一道小学奥数题的编程解法

    一道小学奥数题的编程解法 这是一道小学奥数题,看到这一题后如果只给我笔和纸,我真的无从下手,不知怎么去把这些方框填出来.但借助编程,这道题就非常简单了.直接送上代码. C++程序代码 #include ...

  4. A. 这是一道简单的水题~

    A. 这是一道简单的水题~ pbz最近沉浸在数学中无法自拔,他发现了一种非常有趣的数,这个数的十进制表示形式中只含有8和9,这个数有着很好的寓意,代表了pbz的梦想和期望,他想知道对于任意的给定的正整 ...

  5. 一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】

    一道挺好玩的题,可用来作面试题[来自20111224 Topcoder DIVI 250题] 有N个数,编号1到n.按照以下规则进行删除数,求最后剩下的那个数.[1<= n <= 1000 ...

  6. 一道小学奥数题,没做出来。求解答

    一道小学奥数题,没做出来.求解答. 将图形平均分成大小相等,形状相同的四份. 下面是某位高人给出的答案.四种不同颜色分别代表4个不同的部分.怎么说呢,这确实是个答案... 虽然和我们通常认为的答案有些 ...

  7. c语言 奥数题目及答案,科学网—C语言做一道小学奥数题 - 康建的博文

    见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0.1.4有重复, 0526174839无重复). 大概 ...

  8. c语言 奥数题目及答案,科学网-C语言做一道小学奥数题-康建的博文

    见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0.1.4有重复, 0526174839无重复). 大概 ...

  9. c语言5个人3课成绩,一道c语言排序题【问题描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高...

    一道c语言排序题 [问题描述] 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分 ...

  10. 一道小面试算法题的思路

    一道小算法题的思路 有这么一道小面试算法题:给定一个长度为 n 的整数数组,下标为 i 的元素表示第 i 天某个股票的价格,每次最多持有一股,每次买卖最多一股,在最多只买卖一次的情况下(先买后卖,不考 ...

最新文章

  1. 年末盘点 2016 年最严重的 7 起 DDoS 攻击事件
  2. 体感俄罗斯方块,CPU就能跑,全开源
  3. maven原型_创建自定义Maven原型
  4. C语言存储空间布局以及static解析
  5. 2022牛客寒假算法基础集训营3 签到题7题(附基础集训营1-3签到题总结)
  6. java 可重入锁 clh_Java可重入锁原理
  7. Yacc 与 Lex
  8. onlyoffice开发java_OnlyOffice功能及演示
  9. Java 编程技术中汉字问题的分析及解决
  10. function函数
  11. 十二首《临江仙》,说尽心中无限事
  12. JavaSE :自问自答
  13. matlab中在同一图形窗口中绘制出一个周期内的正弦曲线和余弦曲线,多选(3分) 在一个图形窗口同时绘制[0,2π]的正弦曲线、余弦曲线,可以使用命令( )。...
  14. 检测xposed框架实现
  15. HTML小白起步(一、闲聊篇)
  16. 基于MATLAB/yalmip/cplex 的机组最优组合
  17. 堆栈指针寄存器-SP详解
  18. oracle删除两个月以前的数据,Oracle恢复删除数据
  19. 产品设计体会(4014)记一次产品整合预研
  20. 【Unity3d】带你制作一款类似于金山打字之生死时速的小游戏

热门文章

  1. 关闭CentOS蜂鸣器警报声音
  2. 中国IT排名百强公司 .
  3. 孵出鸡蛋然后拿去卖钱
  4. unity android录制视频教程,Unity3d 录屏功能教程指南 | Cross Platform Replay Kit
  5. RRU、BBU、AAU
  6. Android DocumentFile基本使用
  7. 如何使用Three.js为3D模型构建Color Customizer应用
  8. c语言表达式必须包含指针类型,c – 错误:表达式必须是指向完整对象类型的指针(?)...
  9. MySQL Error 1048 奇遇记
  10. datav可视化大屏使用教程