cfedu/A/求和
思路:
用数组直接标记2^n,n属于(0~~31);用LL或者INT都可以,不会爆。但是ans要用LL。
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> pa;
typedef long long  LL;
const int inf=1e9;//INT_MAX;
const int maxn=100+10;
LL ma[100];
void init()
{
    LL x=1;
    for(int i=0;i<=32;i++){
        ma[i]=x;
        x*=2;
    }
}
int main ()
{
    init();
    int T;scanf("%d",&T);
    while(T--)
    {
        LL n;
        LL ans=0;
        scanf("%lld",&n);
        LL x1=n;
        LL x2=(n+1);
        if(x1%2==0)//考虑多了,不会爆,
            x1/=2;
        else
            x2/=2;
        ans=x1*x2;
        for(int i=0;i<=32;i++)
        {
            if(n<ma[i])
                break;
            else
                ans-=2*ma[i];
        }
        printf("%lld\n",ans);
    }
}
cfedu/A/求和的更多相关文章
- Java程序:从命令行接收多个数字,求和并输出结果
		
一.设计思想:由于命令行接收的是字符串类型,因此应先将字符串类型转化为整型或其他字符型,然后利用for循环求和并输出结果 二.程序流程图: 三.源程序代码: //王荣荣 2016/9/23 ...
 - Java之递归求和的两张方法
		
方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ ...
 - EXCEL中对1个单元格中多个数字求和
		
如A1=3779.3759.3769.3781.3750,A2对A1中4个数字求和怎么求!请高手赐教! 方法一:在B1中输入公式=SUM(MID(A1,{1,6,11,16,21},4)*1) 方法二 ...
 - codevs 1082 线段树区间求和
		
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
 - 从sum()求和引发的思考
		
sum()求和是一个非常简单的函数,以前我的写法是这样,我想大部分和我一样刚开始学习JS的同学写出来的也会是这样. function sum() { var total=null; for(var i ...
 - //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
		
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和 # include<stdio.h> void main() { ,sum1; ]={,- ...
 - Ajax中get请求和post请求
		
我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...
 - POJ 2823 Sliding Window 线段树区间求和问题
		
题目链接 线段树区间求和问题,维护一个最大值一个最小值即可,线段树要用C++交才能过. 注意这道题不是求三个数的最大值最小值,是求k个的. 本题数据量较大,不能用N建树,用n建树. 还有一种做法是单调 ...
 - HDU 1166 敌兵布阵 线段树单点更新求和
		
题目链接 中文题,线段树入门题,单点更新求和,建一棵树就可以了. #include <iostream> #include <cstdio> #include <cmat ...
 
随机推荐
- asp.net接收发送的xml字符串数据
			
最近研究为新的接口,发现发送的消息的格式为xml类型.之前接口接触的多是接收json类型的数据,可以直接通过Request["Key"]/Request.QueryString[& ...
 - IOS开发—UITableView重用机制的了解
			
引言 对于一个UITableView而言,可能需要显示成百上千个Cell,如果每个cell都单独创建的话,会消耗很大的内存.为了避免这种情况,重用机制就诞生了. 假设某个UITableView有100 ...
 - 【编码问题】if,for语句与中文编码
			
1. 首先先来说说中文的问题.众所周知,作死的python经常和中文过不去 每次,开头必须声明 # coding: utf-8 或者是 # -*- coding: utf-8 -*- 然而,被坑过的 ...
 - Silverlight中以客户端加载另一项目客户端(先登录后加载的一般实现)
			
近几日,本人在对一个老的Silverlight的GIS项目进行维护,发现该项目的实现是先把所有的资源加载至客户端,其中包括登录部分和业务实现部分,我就在想可不可以把登录部分和业务实现部分开来.如果用户 ...
 - 嵌套json
			
今天一个客户问怎样把表中相同键值对应的文本按照一定顺序拼接起来.如果使用SQL实现将非常麻烦,并且效率低下.GP4.1以后提供了一个函数array_agg可以方便快捷,高效的实现该功能 比如原始查询是 ...
 - Linux Ubuntu 14.04安装LAMP(Apache+MySQL+PHP)网站环境
			
从虚拟主机到VPS/服务器的过度,对于普通的非技术型的站长用户来说可能稍许有一些困难,麦子建议我们如果能够在虚拟主机环境中满足建站需要的, 还是用虚拟主机比较好.除非我们真的有需要或者希望从虚拟主机过 ...
 - 把excel数据导入mysql中
			
适用:每列的数据都不是以逗号分隔. 1.在mysql建表,全部字段与表头相同且顺序一致 2.将excel另存为csv格式,用Editplus把CSV文件另存为UTF-8编码格式 3.执行load da ...
 - 《C++ Primer》之面向对象编程(一)
			
面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.//动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数. 面向对象编程的关键思想是多态性(polymorphism). ...
 - Windows Access Token
			
security descriptor A structure and associated data that contains the security information for a sec ...
 - 关于malloc和free函数的用法
			
原文:http://blog.pfan.cn/vfdff/33507.html 个人总结 在C语言的学习中,对内存管理这部分的知识掌 握尤其重要!之前对C中的malloc()和free()两个函数的了 ...