首页 > 其他分享 >10.16

10.16

时间:2024-10-16 18:44:45浏览次数:1  
标签:10 int ++ 100010 ans 10.16 mod

好的,让我们逐句解析这段代码,并分析其总体功能。

逐句解析

#include<bits/stdc++.h>
using namespace std;
  • 引入标准库,bits/stdc++.h 是一个包含常用 C++ 标头文件的头文件,简化了包含过程。
const int mod = 1e9 + 7;
  • 定义常量 mod,值为 (10^9 + 7),用于取模运算,防止大数溢出。
struct er {
    int n, k, id;
} a[100010];
  • 定义一个结构体 er,包含三个整数:nkid。数组 a 用于存储最多 100010 个测试案例的输入。
int c[100010] = { 1 };
  • 定义数组 c,初始化第一个元素为 1,用于存储 (2^i \mod (10^9 + 7)) 的值。
int main() 
{
  • 主函数开始,程序执行从这里开始。
    int t; cin >> t;
  • 读取测试案例的数量 t
    for (int i = 0; i < t; i++) {
        cin >> a[i].n;
    }
  • 循环读取每个测试案例的 n 值。
    for (int i = 0; i < t; i++) {
        cin >> a[i].k; a[i].id = i;
    }
  • 循环读取每个测试案例的 k 值,并将 id 设置为当前的索引 i
    int ans = 1;
    for (int i = 1; i < 100010; i++) {
        ans *= 2; ans %= mod;
        c[i] = ans;
    }
  • 初始化 ans1,计算并存储 (2^i \mod (10^9 + 7)) 到数组 c 中,利用取模防止溢出。
    for (int i = 0; i < t; i++) {
        if (a[i].n > a[i].k)
            cout << c[a[i].k];
        else if (a[i].n == a[i].k) cout << 1;
        else cout << 0;
        cout << endl;
    }
}
  • 对每个测试案例进行判断:
    • 如果 n > k,输出 c[k](即 (2^k \mod (10^9 + 7)))。
    • 如果 n == k,输出 1
    • 如果 n < k,输出 0
    • 每次输出后换行。

大体分析

这段代码的功能是处理一系列的测试案例,计算特定条件下的结果。具体来说,它计算了给定的 nk 值的关系,并根据这个关系输出相应的结果,利用了预先计算好的 (2^k \mod (10^9 + 7)) 来提高效率。这种逻辑在许多算法竞赛中很常见,通常用于组合数学或数论问题。你是否对某个特定方面想更深入地探讨?

标签:10,int,++,100010,ans,10.16,mod
From: https://www.cnblogs.com/xkgc/p/18470535

相关文章

  • 10.16测试分类
    软件测试之测试分类一、按开发阶段划分1、单元测试2、集成测试3、系统测试4、验收测试二、按查看代码划分1、黑盒测试定义:黑盒测试也是功能测试,测试中把被测试的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据比如:计算器当作黑盒子:输入1+......
  • 10.16
    一.单选题(共8题,16分)1. (单选题,2分) 下列传统并行计算框架,说法错误的是哪一项? A刀片服务器、高速网、SAN,价格贵,扩展性差上B共享式(共享内存/共享存储),容错性好C编程难度高D实时、细粒度计算、计算密集型2. (单选题,2分) 下列关于MapReduce模......
  • 10.16
    A判断完是决策单调性之后决定回来写(埋下伏笔),B的题面不好看直接跳了,发现C是小清新数据结构,一个小时内会了,又断断续续写了三个小时,最后剩20min急忙码完A的暴力。60+0+90鉴定为菜就多练。A.共享单车决策单调性板题,\(O(n^2k)\)暴力,打个表,发现决策单调性,套上来就行了。B.......
  • 10.16
    java完成栈回文操作importjava.util.Stack;importjava.util.Scanner;publicclassMain{publicstaticbooleanisPalindrome(Stringstr){//使用栈存储字符串的字符Stack<Character>stack=newStack<>();//将字符串的每个字符压入栈中for(char......
  • 2024.10.16总结
    本文于github博客同步更新。A:打表发现有决策单调性,考虑人类智慧,每次向后跳\(rand\%200\)个点,若更优则继续跳,然后就过了。正解是这样写的:设\(p[i\)]为当前层的最优决策点,把决策按顺序加入,同时更新\(p[i]\)把相同的\(p[i]\)合并成一个点,对这些点维护栈,每加入一个决策......
  • 永久白嫖AWS云服务器,验证、注册指南【2024.10.16亲测可用】
    背景不知道你想不想拥有一台属于自己的云服务器呢,拥有一台自己的云服务器可以建站,可以在上面搭建个人博客,今天我就来教大家如何申请亚马逊AWS免费云服务器,这个云服务器可以长达12个月的免费。而且到期后可以继续换个账号继续白嫖。(不过呢在注册的时候是需要信用卡的,实测国......
  • 闲话 10.16
    今日第一蚌StepstoOne已同步更新于莫比乌斯反演。CF1139D用到一点莫反也是莫反。题目大意:每次从\(\left[1,n\right]\)随机取一个数加入数组\(a_i\),当\(gcd_{i=1}^{len}\a_i=1\)时停止,问\(len\)的期望。直接用期望式子推:\[\begin{aligned}ans&=\sum_{i=1}......
  • 10.16
    今天我主要学习了Java中的异常处理知识。通过编写一个简单的程序,我了解了如何使用try-catch语句来处理异常,以及如何使用finally语句来确保资源的正确释放。此外,我还了解到使用二分法查找可以优化多次比较的算法,提高程序的运行效率。在实践中,我遇到了一些困难。例如,在Web界面中实......
  • 10.16
    在MySQL中,可以使用ALTERDATABASE来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:ALTERDATABASE[数据库名]{[DEFAULT]CHARACTERSET<字符集名>|[DEFAULT]COLLATE<校对规则名>}语法说明如下:ALTERDATABASE用于更改数据库的全局特性。使用AL......
  • 【一周聚焦】联邦学习 10.9-10.16
    近期的联邦学习做了如下内容:大模型目前大模型是绝对的研究风口,而FL中为了降低传输开销的网络压缩技术也是可以服务于LLM的高效传输的。港科大+微众银行,10月16,FATE-LLM:AIndustrialGradeFederatedLearningFrameworkforLargeLanguageModels杨强团队一直在推FATE这个联......