• C. Carrying Conundrum(思维 + 奇偶数位)


    Problem - 1567C - Codeforces

     

    爱丽丝刚刚学会了加法。但是,她还没有完全学会 "携带 "的概念--她不是携带到下一列,而是携带到左边两列的列。

    例如,评估2039+2976这个和的常规方法是如图所示。


    然而,爱丽丝是按照图中的方式进行评估的。


    具体来说,她是这样做的。

    将9和6相加得出15,并将1带到左边两列,即 "0 9 "列。
    加3和7得10,并把1带到左边两列,即 "2 2 "列。
    加1、0和9组成10,并将1带到左边两列,即加号上面的那一列。
    加1,2和2组成5。
    加1为1。
    因此,她最后得到的结果是不正确的15005。
    爱丽丝走到鲍勃面前,说她把两个数字相加,得到的结果是n,但是,鲍勃知道爱丽丝是用她自己的方式加的。请帮助鲍勃找出有秩序的正整数对的数目,使爱丽丝将它们相加后得到的结果是n。请注意,如果a≠b,则成对的(a,b)和(b,a)被视为不同。

    输入
    输入由多个测试案例组成。第一行包含一个整数t(1≤t≤1000)--测试案例的数量。测试用例的描述如下。

    每个测试用例的唯一一行包含一个整数n (2≤n≤109) - Alice向Bob展示的数字。

    输出
    对于每个测试用例,输出一个整数 - 有序的正整数对的数量,当Alice将它们相加时,她会得到一个n的结果。

    例子
    inputCopy
    5
    100
    12
    8
    2021
    10000
    输出拷贝
    9
    4
    7
    44
    99
    备注
    在第一个测试案例中,当Alice评估1+9, 2+8, 3+7, 4+6, 5+5, 6+4, 7+3, 8+2, 或9+1中的任何一个和时,她将得到一个100的结果。下图显示了爱丽丝是如何计算6+4的。

    题解:
    题目说每次仅为向左移动两位,可以发现奇数位只会影响奇数位,偶数位只会影响偶数位

    我们得到奇数位x与偶数位的数y,

    x与y可以分别由x+1,y+1种方法组成

    答案位(x+1)*(y+1),因为会有一个数奇数位和偶数位全为0的情况,但题目中明确要求两个正整数,而既然有一个数,肯定会有两种情况(交换位置)

    (题中给你说的信息肯定是有用的,没有思路时仔细揣摩一下题目为什么要给这样的条件)

    1. #include<iostream>
    2. #include<vector>
    3. #include<queue>
    4. #include<cstring>
    5. #include<algorithm>
    6. #include<string>
    7. #include<map>
    8. using namespace std;
    9. #define int long long
    10. int a[100040];
    11. void solve()
    12. {
    13. // ios::sync_with_stdio(false);
    14. // cin.tie(0);
    15. // cout.tie(0);
    16. string s;
    17. cin >> s;
    18. int n = 0,m = 0;
    19. for(int i = 0;i < s.size();i++)
    20. {
    21. if(i&1)
    22. {
    23. n = n*10 + s[i] - '0';
    24. }
    25. else
    26. {
    27. m = m*10 + s[i] - '0';
    28. }
    29. }
    30. cout<<(n+1)*(m+1) - 2<<"\n";
    31. }
    32. signed main()
    33. {
    34. int t = 1;
    35. cin >> t;
    36. while(t--)
    37. {
    38. solve();
    39. }
    40. }

  • 相关阅读:
    上传文件到七牛云并限制并发数量
    【云原生】k8s新版本与Docker和Containerd的关联关系
    python环境安装教程
    【嵌入式开发学习】__扒一扒单片机串口IAP原理
    使用.NET简单实现一个Redis的高性能克隆版(一)
    火影忍者游戏干货分享:5个提升战斗技巧的实用技巧!
    VTK PolyData 重采样 数据抽取 vtkDecimatePro
    C++的四个cast
    极客DIY开源方案分享——数字幅频均衡功率放大器设计(实用的嵌入式电子设计作品软硬件综合实践)
    Spring学习笔记5 GoF之工厂模式
  • 原文地址:https://blog.csdn.net/m0_64158084/article/details/128150580