这里写自定义目录标题

  • 【2020 ICPC Asia East Continent Final】赛前训练
    • A - Namomo Subsequence
    • 输入:
    • 输出:
    • 样例:
    • 解析:
    • 代码:
  • F - Rooks
  • L - Square
  • 解析:

【2020 ICPC Asia East Continent Final】赛前训练

A - Namomo Subsequence

输入:

输出:

样例:

解析:

“namomo”类子序列可以拆为"na"和“momo”两部分,两部分分别计算然后乘起来容斥一下即可,分5种情况:abcdcd (b!=c、a!=b、c!=d)、cbcdcd (c!=d、b!=c、c!=b), adcdcd (a!=d、c!=d、d!=c), dbcdcd (d!=b、b!=c、c!=d), ababab(a!=b) 遍历每个"m"并枚举每一个"o",结果为abcdcd-cbcdcd-adcdcd-dbcdcd+ababab,时间复杂度62*n

代码:

#include<iostream>
#include<cstring>
using namespace std;
typedef long long LL;
const int N = 1e6+5,mod=998244353;
char str[N];
int len;
int dp1[64][N];//dp1[j][i] 在i的位置时,向后str[i]jstr[i]j有多少str[i]!=j
int dp3[62];//dp3[i] 向后有多少i
int dp2[62];//dp2[i] 向前有多少i
int dp0[62];//向前ij有多少i!=j
LL ab[62][62];//ab[i][j] 向后有多少形如ij的 (i!=j)
LL bab[62][62];//bab[i][j] 向后有多少形如jij的(i!=j)
LL ans=0;
LL xb[62];// xb[i] 向前有多少形如ib的 (i!=b,b任意)
LL ax[62];// ax[i] 向前有多少形如ai的 (i!=a,a任意)
LL tt[62][62];// tt[i][j] 向前有多少形如ij的 (i!=j)
int mpp(int ch){if(ch>='0'&&ch<='9'){return ch-'0';}if(ch>='A'&&ch<='Z'){return ch-'A'+10;}return ch-'a'+36;
}
int mp[256];
int main(){scanf("%s",str+1);len=strlen(str+1);for(int i='0';i<='9';++i)mp[i]=mpp(i);for(int i='A';i<='Z';++i)mp[i]=mpp(i);for(int i='a';i<='z';++i)mp[i]=mpp(i);for(int i=len;i>=1;--i){int c=mp[str[i]];for(int j=0;j<62;++j){if(c==j)continue;dp1[j][i]=dp1[j][i]+bab[c][j];if(dp1[j][i]>=mod)dp1[j][i]-=mod;bab[j][c]=(bab[j][c]+ab[j][c]);if(bab[j][c]>=mod)bab[j][c]-=mod;ab[c][j]=ab[c][j]+dp3[j];if(ab[c][j]>=mod)ab[c][j]-=mod;}dp3[c]++;}for(int i=1;i<=len;++i){int c=mp[str[i]];LL sum=0;for(int j=0;j<62;++j){if(j!=c){sum=(sum+dp0[j]);if(sum>=mod)sum-=mod;}}for(int j=0;j<62;++j){if(c==j){dp0[c]=((LL)dp0[c]+i-1-dp2[c]);if(dp0[c]>=mod)dp0[c]-=mod;ax[j]=(ax[j]+i-1-dp2[j]);if(ax[j]>=mod)ax[j]-=mod;continue;}LL temp=dp1[j][i];LL db=(xb[j]-tt[c][j]+mod);if(db>=mod)db-=mod;xb[j]=(xb[j]+dp2[j]);if(xb[j]>=mod)xb[j]-=mod;tt[c][j]=(tt[c][j]+dp2[j]);if(tt[c][j]>=mod)tt[c][j]-=mod;ans=(ans+(sum-xb[c]-ax[j]-db+tt[j][c]+3LL*mod)%mod*temp)%mod;}dp2[c]++;}printf("%lld\n",ans%mod);return 0;
}

F - Rooks

签到题,按X轴排一下序,按Y轴排一下序,判断相邻的节点即可。

L - Square

解析:

首先对每一个数质因子分解,并对每一个质因子的指数对2取模(2倍的质因子对结果无影响),对每一个质因子分开讨论,发现现规律:如果要使数组满足条件,对于这个质因子要么所有数都有,要么都没有(指的是指数对2取模为0),因为如果只有部分有,那必存在相邻的两一个有,一个没有,这中情况是不满足这两个数的乘积是完全平方数的。据此可的解

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e6+10,mod=1e9+7;
int a[N];
int cnt[N];
void div(int x)
{for(int i=2;i*i<=x;i++){int c=0;while(x%i==0){x/=i;c++;}c%=2;cnt[i]+=c;}if(x>1)cnt[x]++;
}
LL qpow(LL a,LL k,LL p)
{LL res=1;while(k){if(k&1)res=res*a%p;k>>=1;a=a*a%p;}return res;
}
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++){div(a[i]);}LL ans=1;for(int i=1;i<N;i++){if(cnt[i]){ans=ans*qpow(i,min(cnt[i],n-cnt[i]),mod)%mod;}}printf("%lld",ans);
}

【2020 ICPC Asia East Continent Final】赛前训练相关推荐

  1. 2020 ICPC Asia East Continent Final D. City Brain(最短路+三分)

    传送门 题意: 给出nnn​​ 个点,mmm条边的无向带权图,初始边权都为111,一共有kkk 次操作机会,每次操作可以选择一条边使其边权+1+1+1, 通过一条边的时间为 1/1/1/边权 ,求mi ...

  2. 2020 ICPC Asia East Continent Final_K.Allin

    题面: 题意: 打牌题,意思是说给你五张牌h1,h2,c1,c2,c3:除此之外本题还要考虑未给出的四张牌c4,c5,以及p1,p2. p1,p2是对面已知有的牌,h1,h2是我手上已知有的牌. c1 ...

  3. 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 题解(10 / 13)

    2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 9题金 6题银 5题铜 题目比较简单,但是读题太难了- 比赛链接:htt ...

  4. The 2020 ICPC Asia Shenyang Regional Programming Contest I题 Rise of Shadows(数论)

    题目链接The 2020 ICPC Asia Shenyang Regional Programming Contest 题目大意: 一天内有H小时,每小时M分钟,时针分针以恒定速率旋转. 现在若时针 ...

  5. The 2020 ICPC Asia Yinchuan Regional Programming Contest

    The 2020 ICPC Asia Yinchuan Regional Programming Contest A 开三个vector数组存储x,y,z轴上的点,unique+erase去重 #in ...

  6. 2018-2019 ACM-ICPC, Asia East Continent Finals

    2018-2019 ACM-ICPC, Asia East Continent Finals 在此附上吉老师的视频题解 Problem C:Heretical - Möbius 思路:根据莫比乌斯系数 ...

  7. The 2017 ACM-ICPC Asia East Continent League Final记录

    首先感谢tyz学弟的麻麻-给我们弄到了名额- 然后就开始了ACM ECLFinal的玩耍,A*仙人掌可是立了flag要好好打的- 试机赛好像就全是GCJ kickstart的原题,然后AK了但是由于一 ...

  8. 2017-2018 ACM-ICPC Asia East Continent League Final L. SOS(博弈,思维)

    LINK 小范围手动模拟,发现不管怎样都可以平局,一时间不知道怎样必胜 考虑样例n=7n=7n=7的情况 先手现在中间放下一个SSS 然后不管后手怎么走,先手都在另一侧的端点放一个SSS(下面用eee ...

  9. 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final 2017)

    地址 Rank Solved A B C D E F G H I J K L M 126/547 7/13 O O O . . . Ø O . O O . O O: 当场通过 Ø: 赛后通过 .: 尚 ...

最新文章

  1. 从Java到Spring为何独得青睐Spring Summit 2017不可不知的那些事儿
  2. enscape渲图按哪个键_手机输入法之争:九宫格和全键盘哪个更科学?
  3. 关于《资产负债表》中未分配利润项目的填列
  4. HBase数据迁移到Kafka实战
  5. pythonchallenge_level2
  6. 来聊一聊window.fetch
  7. linux配置本地yum(CentOS7)
  8. 简约几何艺术海报PSD分层模板,即使简单也足以控制观众的注意力。
  9. vscode 开发maven项目(springboot项目)
  10. lob移表空间 oracle_关于oracle带lob对象的分区表,移动表空间的问题
  11. ArcGIS中裁剪(clip)出现000117错误的解决办法
  12. js文本框设置必填项_表单字段必填项JS代码
  13. 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
  14. 利用百度API进行淘宝评论关键词提取
  15. Python小项目(学生成绩管理系统)7.排序、显示部分
  16. Springboot Swagger2 Unable to infer base url问题解决
  17. 从《道德经》看项目经理修炼的7条法则,你做到了几条?
  18. java中栈的两种实现
  19. Vue中的component
  20. Mac Word 公式自动编号与交叉引用

热门文章

  1. 2022-2028全球及中国C2C二手交易平台行业研究及十四五规划分析报告
  2. Python密码学入门:凯撒密码
  3. 大龄(35岁)程序员的面试经历,酸甜苦辣
  4. fontforge unity
  5. What Makes a Good Teacher?
  6. 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询...
  7. 我们做互联网的产品的时候,面对不同的细分市场
  8. 利用IE浏览器漏洞入侵
  9. 中秋节教师节,程序员双节同庆
  10. 中序后序建树(C/C++)