scu oj 4437: Carries (2015年四川省程序ACM设计竞赛B题目 )

其实这题只要想到这个结论就简单了。如果2个数a,b的第k位相加要进位,那么必须满足(a%10^k+b%10^k)>=10^k  .有了这个结论就很简单了,枚举没一位就好了。

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<string>
#include<queue>
#include<cmath>
#include<map>
#include<algorithm>
#include<vector>
#include<bitset>
using namespace std;
const int mmax = 100010;
typedef long long LL;
int a[mmax];
int b[mmax];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        int tmp=1;
        LL ans=0;
        for(int i=0;i<9;i++)
        {
            tmp*=10;
            for(int j=0;j<n;j++)
                b[j]=a[j]%tmp;
            sort(b,b+n);
            int r=n;
            for(int j=0;j<n;j++)
            {
                while(  r && b[j]+b[r-1]>=tmp)
                    r--;
                if(r<=j)
                    ans+=(n-r-1);
                else
                    ans+=(n-r);
            }
        }
        ans/=2;
        printf("%lld\n",ans);
    }
    return 0;
}
时间: 2024-08-28 03:49:58

scu oj 4437: Carries (2015年四川省程序ACM设计竞赛B题目 )的相关文章

scu oj 4439 : Vertex Cover(2015年四川省程序ACM设计竞赛D题 )

一般图的最小点覆盖问题是是一个npc问题,目前哈没有比较好的多项式的算法.但是这题有一点特殊的地方,每条边必定包含前面30个点的的一个,所以这题可以枚举钱30个点的选和不选的状态,后面的点对应的状态就唯一了.    所以这题就是  dfs+可行性减枝和答案最优减枝. #include<stdio.h> #include<string.h> #include<iostream> #include<string> #include<queue> #i

scu oj 4442 Party(2015年四川省acm程序设计竞赛)

Party n frogs are invited to a tea party. Frogs are conveniently numbered by 1,2,-,n. The tea party has black and green tea in service. Each frog has its own preference. He or she may drink only black/green tea or accept both. There are m pairs of fr

SCU 4436 Easy Math 2015年四川省赛题

题目链接:http://acm.scu.edu.cn/soj/problem/4436/ 题意:给你n个整数,求这n个数的平方根和是否是一个整数: 解题思路:如果这题每个数给他算出来,必然费时间,可能还会超精度,所以巧妙的方法就是判断这些整数是否全是完全平方数,如果有一个不是,则他们的平方根和肯定不是一个整数. AC代码: #include <cstdio> #include <cmath> #include <cstring> #include <algorit

ACM:SCU 4437 Carries - 水题

SCU 4437  Carries Time Limit:0MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Practice Description Carries frog has nn integers a1,a2,…,ana1,a2,…,an, and she wants to add them pairwise. Unfortunately, frog is somehow afraid of carries (进位). S

CSU OJ 1120 病毒(湖南省第八届大学生计算机程序设计竞赛)

 1120: 病毒 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 146  Solved: 53 [Submit][Status][Web Board] Description 你有一个日志文件,里面记录着各种系统事件的详细信息.自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生). 遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变).备份的日志文件也被感染了,但由于

计算机科学及编程导论(3)迭代程序的设计与实现、遍历、元组

1. 迭代程序的设计:基础元素 迭代程序的实现,通常包括下了以下五个部分: 计数器(Count):用于标记循环的次数 初始化(Initiate):在循环外部进行初始化 正确的结束测试(Right End Test):在什么情况下结束通常与计数器(Count)密切相关 循环部分的代码块:该部分代码块通常包含了对计数器的改变 结束后程序应该做什么 2. 迭代程序的设计:流程图 在使用具体的代码实现之前,可以用流程图来组织程序. 举一个简单的例子,已经一个正整数的平方为X,要求这个正整数,可以设这个正

【小程序码 - 设计篇】菊花绽放

作者:lincolnlin,endyxu,changoran 2017 年四月,微信正式推出了小程序码.小程序码的使命及诞生的过程, 扫码背后藏了什么秘密?小程序码又为何长得像菊花? | 你问鹅答一文已经作过一番介绍.本文将为你剖析更多关于小程序码的技术细节. 小程序码的前世 初见小程序码,犹如一朵盛开的菊花. 其实这种脑洞大开的异形码并非微信首创,Facebook.kik.snapchat 等公司都研发了自己体系的码. 从设计的图形上,我们把上述方案简单分成: ? 平面类 如 qrcode ,

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

简单应用程序的设计 -重复前缀

重复前缀 由于串操作指令只能每次对字符串的一个字符进行处理,所以使用了一个循环,以便完成对整个字符串的处理,为了进一步提高效率,8086和8088还提供了重复指令前缀,重复指令前缀可以加载串操作指令指令之前,已达到重复执行其后串操作指令的目的 重复前缀REP REP用作为一个串操作指令的前缀,它重复其后面的串操作指令动作,每一次重复都先判断CX是否为0,如果为0 就结束重复,否则CX的值就减1,重复其后面的串操作指令,所以CX等于0 时,就不执行其后面的字符操作指令 重复前缀REP主要用在传送指