July 17th 模拟赛C T1 Gift Solution
2016-07-18 08:27
423 查看
空降题目处(外网)
点我点我点我
空降题目处(内网)
点我点我点我
接下来t行,每行包含九个自然数。
每行一个整数,表示2a+2b+2c+2d+2e+2f+2g+2h+i。
有些人说要高精度?
Qword(Unsigned Long Long) Can Solve It,Just Need Pretreatment.
Qword(Unsigned Long Long)就能解决,只需要预处理(打表)。
Pascal
点我点我点我
空降题目处(内网)
点我点我点我
Description
无(WHAT THE F**K)Input
输入的第一行为一个整数t。接下来t行,每行包含九个自然数。
Output
输出t行每行一个整数,表示2a+2b+2c+2d+2e+2f+2g+2h+i。
Solution
Some People Said That We Need High-Precision?!有些人说要高精度?
Qword(Unsigned Long Long) Can Solve It,Just Need Pretreatment.
Qword(Unsigned Long Long)就能解决,只需要预处理(打表)。
Code
C++#include<iostream> #include<cstdio> #include<cmath> using namespace std; unsigned long long x,y,m[61]; int t; bool p; int main() { m[0]=1LL; for (int i=1;i<=60;i++) m[i]=m[i-1]*2; scanf("%d",&t); for (int i=1;i<=t;i++) { x=0; p=true; for (int j=1;j<=8;j++) { scanf("%llu",&y); x+=m[y]; if (y!=60LL) p=false; } scanf("%llu",&y); if ((p)&&(y==9223372036854775808LL)) printf("18446744073709551616\n"); else printf("%llu\n",x+y); } }
Pascal
var x,y:qword; t,i,j:longint; p:boolean; m:array [0..60] of qword; begin m[0]:=1; for i:=1 to 60 do m[i]:=m[i-1]*2; readln(t); for i:=1 to t do begin x:=0; p:=true; for j:=1 to 8 do begin read(y); x:=x+m[y]; p:=(p) and (y=60); end; read(y); if (p) and (y=9223372036854775808) then writeln('18446744073709551616') else writeln(x+y); end; end.
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C++的template模板中class与typename关键字的区别分析
- C与C++之间相互调用实例方法讲解