QAQ的矩阵价值

#include<cstdio>
#include<iostream>
#include<cmath>
#define mod (int)(1e9+7)
using namespace std;
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        long long ans1 = (1+n)*n/2,ans2 = 1,ans3 = (1+n)*n/2;
        long long a1,a2,a3;
        int i,j;
        for(i = 1;i < n;i++)
        {
            a1 = n*(n-i)%mod;
            for(j = n-i-1;j > 0;j--)
                a1 -= j;
            a1 = a1*(int)pow(10,i)%mod;
            ans1 = (ans1+a1)%mod;
        }
        for(i = 1;i < n;i++)
        {
            a2 = (n-i)*(i+1)%mod;
            int k = 1;
            for(j = i+1;j > 0;j--)
            {
                if((n-i-k)==0)
                    break;
                a2 = (a2-(n-i-k))%mod;
                k++;
            }
            a2 = a2*(int)pow(10,i)%mod;
            ans2 = (ans2+a2)%mod;
        }
        for(i = 1;i < n;i++)
        {
            a3 = (1+n-i)*(n-i)/2%mod;
            a3 = a3*(int)pow(10,i)%mod;
            ans3 = (ans3+a3)%mod;
        }
        printf("%lld %lld %lld\n",ans1,ans2,ans3);
    }
    return 0;
}
先记录下。。因为还不会逆元。大数无法处理!!!  注意:这个不是AC代码 
时间: 2024-10-13 01:47:46

QAQ的矩阵价值的相关文章

cojs QAQ的矩阵 题解报告

题目描述非常的清晰 首先我们考虑(A*B)^m的求法,这个部分可以参考BZOJ 杰杰的女性朋友 我们不难发现(A*B)^m=A*(B*A)^(m-1)*B A*B是n*n的矩阵,而B*A是k*k的矩阵,这样就大大缩小了矩阵的大小 因为矩阵乘法满足结合律,我们先对(B*A)做快速幂,之后乘一下就可以了 之后我们考虑如果没有(i-1)^3的这个系数怎么求G(i)的前缀和 因为矩阵乘法满足分配率,我们利用矩阵倍增((B*A)^0+(B*A)^1……+(B*A)^(m-1))之后乘一下就可以了 之后我们

2019年7月博客汇总下

[ZJOI2007]捉迷藏 这是我最近写过最长的代码QAQ 码力太弱了QAQ 动态点分治模板题. 我们可以用三种堆来维护答案,这些堆要求支持删除非顶元素,以及查询次小值.我们把两个STL堆封装起来就可以实现. 三种堆: d[x]表示以x为根的点分树中所有黑点到它分治爹的距离 c[x]表示以x为根的所有点分儿子d堆中的最大值 ans表示全局的最大值 我们从c中取出最大值和次大值就可以得到过这个点分根的最长链.我们不断用它来更新答案. 注意d的定义是到分治父亲的父亲的最大值 c数组要加入一个0 Co

论如何求矩阵的逆?先看看基础芝士!

这是关于矩阵的一个bugblog (如果觉得格式看不下去请移步:洛咕) 矩阵求逆是个有趣(但暂且不知道有什么神奇运用)的东西, 不过矩阵这玩意儿貌似和线性代数以及向量之类的东西相关,所以学了绝对不亏 xiao 另外,本篇blog 并不一定毫无错误,甚至可能会有些理解上的小偏差,所以请各位观看的神仙及时指出好让作者修改精进,谢谢. 还有矩阵求逆的两种方法将会放在最后讲解 想要学会矩阵求逆的话,首先你得了解几个关于矩阵的概念以及名称的含义 (当然如果你知道这些概念的话可以直接往下跳) 基本概念 1.

51nod 1084 矩阵取数问题 V2

1084 矩阵取数问题 V2 基准时间限制:2 秒 空间限制:131072 KB 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向上和向左走.两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值. 例如:3 * 3的方格. 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:17.1 -> 3 -> 3 -> 3 -> 1 -> 2 -> 2 -&g

矩阵取数

一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值. 例如:3 * 3的方格. 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:11. Input 第1行:N,N为矩阵的大小.(2 <= N <= 500) 第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值.(1 <= N[i] <= 10000) Output 输出能够获得的最大价值. Input示例 3 1 3 3 2 1 

矩阵乘法专题1——bzoj 1297 [SCOI2009] 迷路题解

题目链接 题意:给两个长度分别为n和m的序列,现在有两种操作:1.分别选择两个序列的一个非空前缀,切两个前缀的最后一位相同,删除之,得到1分(只累计),消耗e:2.直接删除两个序列,消耗值定于两个序列之前删除的元素个数之和,并且使得得到的分有效(之前没有有效分) 分析: 首先,问题其实就是转化成,进行若干次操作1,然后进行操作2 还要找到一个判别标准,来评判较优的状态(贪心) 每次的消耗值比较大,其实可以计算出最大的删除次数,这个值不是很大 状态表示: 简单的,一个状态可以表示为串A的位置.串B

蓝桥网试题 java 基础练习 矩阵乘法

------------------------------------------------------------ 第一次感觉到好好学习的重要性QAQ 在做这道题之前请先学会 :矩阵乘法(百度百科) 矩阵的0次幂:对角线为1 其他值为0 例如 结果 ------------------------------------------------------------ 算法 1 import java.util.*; 2 public class Main { 3 public stati

一张榜单如何透视企业微博品牌价值?

每月定时出炉的企业微博品牌榜,是大量后台多体系数据对比.判断.排名后,自动生成的榜单.尤其在4月引入外分评价维度.重设考核体系后,企业微博品牌榜的出炉带有更多优化变革的意味.调整后的榜单,显得更加真实合理和具有指导性.参考性,让纷繁复杂的社交价值变得更加清晰明朗.同时,也让那些占领榜单制高点品牌的成功轨迹也变得有规可循. 从第52名到第2名的变化源于啥? 在4月企业微博品牌榜中,魅族成为最大赢家,@魅族科技 和@魅蓝手机 成功包揽企业官V排行榜前2名!尤其是@魅蓝手机 表现尤为突出,从3月份的5

动态规划---从左上角到右下角的价值最大的路径

编程题:动态规划---从左上角到右下角的价值最大的路径 腾讯2016年4月2号暑假实习移动开发岗的笔试题,编程题第一题大概题目是: 一个m*n的矩阵,只能向右走或是向下走,矩阵每一个元素代表一个财富值,要求打印出从左上角到右下角走的财富最大总值. 如输入m=4 ,n=5, 输入矩阵value= { 0 0 7 0 0, 0 0 0 5 0, 2 0 4 0 0, 0 0 0 3 0}, 打印出最大财富总值是15. 这是动态规划的题目,跟"[leetcode 64] Minimum Path Su