P1762 偶数&杨辉三角(天立OI)

解题思路

一.结论法

杨辉三角形结论

  1. 第\(n\)行有\(n\)个数。

  2. 每行奇数个数必为\(2^k\)(\(k\)不是行数)

  3. 当行数恰为\(2^k\)时,奇数个数为\(2^k\)个,无偶数。

  4. 当行数恰为\(2^k\)时,其前\(2^k\)行有\(3^{(k-1)}\)个奇数。

  5. 前\(n\)行奇数个数(\(p\)):

    \[\notag n=2^{k1}\times 2^{k2}\times 2^{k3}....\times 2^{kn}\\
    p=1\times 3^{kn}+2\times 3^{kn-1}+2^2\times 3^{kn-2}+....+2^{n-1}\times 2^{k1}
    \]
  6. 前\(n\)行偶数个数$(n-1)\times n /2 -p $

二.分析法

既然看不出来,那就打表(\(\bmod 2\)):

1  1
2 1 1
3 1 0 1
4 1 1 1 1
5 1 0 0 0 1
6 1 1 0 0 1 1
7 1 0 1 0 1 0 1
8 1 1 1 1 1 1 1 1 *****
9 1 0 0 0 0 0 0 0 1
10 1 1 0 0 0 0 0 0 1 1
11 1 0 1 0 0 0 0 0 1 0 1
12 1 1 1 1 0 0 0 0 1 1 1 1 *****
13 1 0 0 0 1 0 0 0 1 0 0 0 1
14 1 1 0 0 1 1 0 0 1 1 0 0 1 1
15 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

这个就有规律了:

  1. 当\(n=2^k\)时,前面一共有\(3^k\)个\(1\)

  2. 当\(n!=2^k\)时,可以将\(n\)拆成\(n=2^{k1}\times 2^{k2}\times 2^{k3}....\times 2^{kn}\)

    但这个又有什么用呢?不妨举个例子:

    \[\notag n=12=2^3+2^2\\
    前n行奇数个数p\\
    p=3^3+2*3^2\\
    看图(上面)
    \]

可以发现方法一里面的规律:

综上,下次遇见关于杨辉三角的题先打表!!

CODE

#include<bits/stdc++.h>
#define ll __int128
using namespace std;
const ll maxn = 300;
ll int_maxn=1e9;
ll ll_maxn=1e18;
inline ll read_int(){
ll a=0,f=0,g=getchar();
while(g<'0'||g>'9'){if(g=='-') f=1;g=getchar();}
while('0'<=g&&g<='9') a=a*10+g-'0',g=getchar();
return f ? -a : a;
}
inline void write(ll s,bool f){
ll top=0,a[40];
if(s<0) s=-s,putchar('-');
while(s) a[++top]=s%10,s/=10;
if(top==0) a[++top]=0;
while(top) putchar(a[top]+'0'),top--;
if(f) putchar('\n');
}
ll n; ll top=0,jz[10000],mod=1000003;
inline void er(){
ll m=n;
for(ll i=0;m;i++){
if(m&1) jz[++top]=i;
m>>=1;
}
} inline ll qpow(ll n,ll c){
ll ans=1;
while(c){
if(c&1) ans=ans*n%mod;
n=n*n%mod,c>>=1;
}
return ans;
} inline void read(){
n=read_int();
er();
ll a=1;
ll ans=0;
for(ll i=top;i>=1;i--){
ans=ans+a*qpow(3,jz[i])%mod;
a=a*2%mod;
ans%=mod;
}
ll L=(n+1)%2 ? n/2%mod*(n+1)%mod : (n+1)/2%mod*(n)%mod;
ans=L-ans;
write(ans<0 ? ans+mod : ans,1);
} int main (){
read();
}

THE END

P1762 偶数&杨辉三角的更多相关文章

  1. 杨辉三角 x

    杨辉三角是美丽的数学结晶,其结论往往多蕴含自然之美. ——以下内容均摘抄自题解. 例题: 洛谷P1762  偶数 正如这题所示,数据在n<=10^15的范围内则引导我们去寻找空间更节省,速率更高 ...

  2. 华为OJ平台——杨辉三角的变形

    import java.util.Scanner; /** * 杨辉三角的变形 *第一行为1,后面每一行的一个数是其左上角到右上角的数的和,没有的记为0 * 1 * 1 1 1 * 1 2 3 2 1 ...

  3. LeetCode Pascal's Triangle II (杨辉三角)

    题意:给出杨辉三角的层数k,返回最后一层.k=0时就是只有一个数字1. 思路:滚动数组计算前一半出来,返回时再复制另一半.简单但是每一句都挺长的. 0ms的版本: class Solution { p ...

  4. 华为机试-iNOC产品部-杨辉三角的变形

    题目描述 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数 ...

  5. 杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析

    说明 本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度. 本文假定读者具备二项式定理.排列组合.求和等方面的数学知识. 一  基本概念 杨辉三角,又称贾宪三角.帕斯卡三角,是二项式系数在三 ...

  6. HDU 6129 Just do it(杨辉三角)

    http://acm.hdu.edu.cn/showproblem.php?pid=6129 题意: 给出数组a,并且bi=a1^a2^a3...^ai,并且现在会重复m次,求出最后的b数组. 思路: ...

  7. 816D.Karen and Test 杨辉三角 规律 组合

    LINK 题意:给出n个数,每个数对间进行加或减,结果作为下一层的数,问最后的值为多少 思路:首先我们发现很像杨辉三角,然后考虑如何计算每个数对结果的贡献值,找规律可以发现当数的个数为偶数时,其所在层 ...

  8. 华为oj----iNOC产品部-杨辉三角的变形 .

    此题提供三种方法,第一种,一开始就能想到的,设置一个足够大的数组存储生成的杨辉三角,然后进行判断就行,此方法参见:华为oj iNOC产品部-杨辉三角的变形 另一种方法是采用递归: 三角形的每行的个数为 ...

  9. HDU - 6129 :Just do it (杨辉三角)

    There is a nonnegative integer sequence a 1...n  a1...n of length n n . HazelFan wants to do a type ...

  10. LeetCode118. Pascal's Triangle 杨辉三角

    题目 给定行数,生成对应的杨辉三角 思考 同一行是对称的,最大的下标为(行数+1)/2;1,1,2,3,6;下标从0开始,则对应分别为0.0.1.1.2.2 对于第偶数行,个数也是偶数,对于奇数行,个 ...

随机推荐

  1. 使用CPU运行大语言模型(LLM),以清华开源大模型ChatGLM3为例:无需显卡!用CPU搞定大模型运行部署!【详细手把手演示】

    教程视频地址: 无需显卡!用CPU搞定大模型运行部署![详细手把手演示] 按照上面视频进行安装配置之前需要注意,python编程环境需要大于等于python3.10,否则会运行报错.下载好GitHub ...

  2. 为什么我要弃用华为的软件产品——mindspore从入门到放弃之感想

    从本博主前段时间的博文就可以看到博主写了好多关于华为软件mindspore的入门资料和编译方法以及一些bug的修复,但是无奈之下发现这些简单而且显而易见的bug不仅长期存在与软件中而且在提交PR后而一 ...

  3. HDMI和DP双屏幕连接,对于BIOS来说哪个优先级高——DP连接优先级高于HDMI

    最近被博导忽悠了,说是实验室的国家项目结项了,有几十万的资金没有花掉,于是每个人都有了1W的报销金额,由于是结项所用因此只能报销耗材.我这人呢,平时是绝对不占小便宜的,但这次是个大便宜,于是就有些没把 ...

  4. SpringBoot 用的 spring-jcl 打印日志,与 LoggingSystem 有鸡毛关系?

    开心一刻 现实中,我有一个异性游戏好友,昨天我心情不好,找她聊天 我:我们两个都好久没有坐下来好好聊天了 她:你不是有女朋友吗 我:人家不需要我这种穷人啊 她:难道我需要吗 前情回顾 从源码分析 Sp ...

  5. Excel 导入的开发经验

    2020 年开始接触 Java Excel 导入的开发工作. 一家建筑机器人的公司离职后,来到广州找的是一家工厂,开始接触导入的开发工作.之前也没有什么使用开发经验, 是 教学视频   中看到过有些老 ...

  6. macOS 查看网络接口信息

    networksetup -listallhardwareports 执行结果: Hardware Port: Ethernet Adapter (en4) Device: en4 Ethernet ...

  7. C primer plus笔记之初识C语言

    初识C语言 --本文参考书籍:         Stephen Prata的<C Primer Plus> 前言 C 语言是一门抽象的.面向过程的语言,C 语言广泛应用于底层开发,C 语言 ...

  8. C#/.NET/.NET Core优质学习资料,干货收藏!

    前言 今天大姚给大家分享一些C#/.NET/.NET Core优质学习资料,希望可以帮助到有需要的小伙伴. 什么是 .NET? .NET 是一个免费的.跨平台的.开源开发人员平台,用于构建许多不同类型 ...

  9. 7.22-27MY&MS&ORA等SQL数据库提权

    7.22-27MY&MS&ORA等SQL数据库提权 思路:在利用系统溢出漏洞无果情况下,可以采用数据库提权: 前提:数据库服务开启,且获得数据库最高权限账号密码:除Access数据库外 ...

  10. Patlibc———更快捷的更换libc

    起初是为了简化做pwn题目时,来回更换libc的麻烦,为了简化命令,弄了一个小脚本,可以加入到/usr/local/bin中,当作一个快捷指令 这个写在了tools库(git clone https: ...