牛客练习赛54

日常刷一套牛客练习赛题

A-乘积

n这么小 暴力即可,不知道unsinged long long 操作,用java大数写了:

import java.math.BigInteger;
import java.util.Scanner;public class Main {static BigInteger  cal(int x,int y){if(x>y) {int t=x;x=y;y=t;}BigInteger t1=new BigInteger("0");BigInteger num2=new BigInteger("2");BigInteger num1=new BigInteger("1");while(x>0) {t1=t1.multiply(num2).add(num1);x--;}return t1;}public static void main(String args[]){int t;Scanner sc=new Scanner(System.in);t=sc.nextInt();BigInteger m=new BigInteger("998244353");while(t-->0){int n;n=sc.nextInt();BigInteger ans=new BigInteger("1");for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){BigInteger t1=cal(i,j);//System.out.println(t1);//igInteger tmp=new BigInteger(String.valueOf(t1));ans=ans.multiply(t1).mod(m);}}System.out.println(ans);}}
}

B-求和

是2的n次方,不要看成2n了。简单的枚举n=3的情况发现,除最高位以外 每一位的贡献值都是2^(n-1),最高位是2^n,所以答案就是n*2(n-1)+2^n

注意这里快读不能和cin 、scanf一起用,否则会wa

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const ll mod=998244353;
ll input(){ll x=0,f=0;char ch=getchar();while(ch<'0'||ch>'9') f|=ch=='-',ch=getchar();while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return f? -x:x;
}
ll powmod(ll a,ll b)
{ll res=1;for(;b;b>>=1){if(b&1) res=res*a%mod;a=a*a%mod;}return res;
}
ll cal(ll n)
{return (n%mod*powmod(2,n-1)%mod+powmod(2,n))%mod;
}
int main()
{ll _;_=input();while(_--){ll n;n=input();printf("%lld\n",cal(n));}
}

C-排序

cf出过类似的,忘记怎么做了,献上题解:

对着题解打了两个小时,差点没去世,百度了博客,看了代码,发现是自己差分那里不够美妙。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
typedef long long ll;
char s[N];
ll a[N],n,b[N];
int num[10];ll cal(ll p[])
{for(int i=1;i<=n;++i) b[i]=p[a[i]];for(int i=1;i<=4;++i) num[i]=0;//另类差分求逆序ll ans=0;for(int i=1;i<=n;++i){int now=b[i];for(int i=now+1;i<=4;++i) ans+=num[i];num[now]++;}///printf("ans:%lld\n",ans);return ans;
}
int main()
{scanf("%s",s+1);n=strlen(s+1);for(int i=1;i<=n;++i){if(s[i]=='A') a[i]=1;else if(s[i]=='T') a[i]=2;else if(s[i]=='C') a[i]=3;else a[i]=4;}ll p[5];for(int i=1;i<=4;++i)p[i]=i;ll ans=1e18;do{ans=min(ans,cal(p));}while(next_permutation(p+1,p+1+4));printf("%lld\n",ans);
}

牛客练习赛54(A,B,C(ATCG相同的分在一起 暴力加巧妙差分))相关推荐

  1. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  2. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  4. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  5. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  6. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  7. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  8. 妄想集合(牛客练习赛90)

    妄想集合(牛客练习赛90) 题意: 开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作. Quant l r x\text{Quant l r x}Quant l r x:往编号在 ...

  9. 踩不出足迹(牛客练习赛88 )

    踩不出足迹(牛客练习赛88 ) 题意: 长度为n的数组a,每个数是一个k位二进制 定义一下操作: 令第一次得到的结果为 a1a_1a1​.你需要从第二个数开始,每次可以选择与上一次得到的结果异或或者同 ...

最新文章

  1. 华中科技大学通报:取消张某某研究生导师资格,调离教师岗位,停止其教师资格...
  2. _DataStructure_C_Impl:Dijkstra算法求最短路径
  3. Windows 查看所有进程命令tasklist
  4. NSArray文件读写
  5. 导出Excel java
  6. 这不仅仅是html5的HTML5问题
  7. 连接redis的方法
  8. 使用util.js处理表格
  9. flutter的四种模式/application/plugin/package/module,flutter调用原生的方法
  10. 【运动学】基于matlab GUI最小半径泊车方法仿真【含Matlab源码 690期】
  11. c语言观察程序流程图,程序流程图的画法
  12. 用了这些软件,写代码有了飞一般的速度
  13. adb与java端口冲突,如何解决adb devices 端口被占用的问题zz
  14. 参考文献标引方式_论文参考文献标注格式
  15. 韩服游戏IP用哪里的比较稳定怎么选择服务器
  16. Python 谷歌翻译_浏览器版本 selenium (2022年1月测试可用)
  17. Learning Texture Transformer Network for Image Super-Resolution(全译文+大量名词链接)读论文记录①
  18. 线性回归的几种评价方法
  19. 这几款摸鱼神器,让我惊了!
  20. Android手机通知栏工具,安卓通知栏美化工具(Flat Style Colored Bars)

热门文章

  1. c++ 指针类型的引用
  2. APP稀有资源及19种无需编程的App创建工具
  3. 如何成为数字化人才?
  4. 不重不漏的分析方法:MECE分析法
  5. Ubuntu 命令行常见指令
  6. 树莓派4B使用VNC连接之大无语事件
  7. 八位彻底改变App Store的iOS开发者
  8. 朗读者李晓云清华大学计算机,世界杰出女科学家奖得主张弥曼现身《朗读者》...
  9. 2014年发生的一些事情
  10. python 正则表达式匹配