哈尔滨理工大学软件学院ACM程序设计全国邀请赛(水题5道)
来源:互联网 发布:linux查看snmp服务 编辑:程序博客网 时间:2024/05/01 21:10
E:统计子串‘6’的长度,每个长度对答案有(1+cnt)*cnt/2的贡献 ,统计答案。
代码:
#include <bits/stdc++.h>#define ll long longusing namespace std;int n,len;char str[200010];ll quick(ll x){ return (1+x)*x/2;}int main(){ scanf("%d",&n); while(n--) { scanf("%d",&len); scanf("%s",str); ll sum=0; ll ge=0; for(int i=0;i<len;i++) { if(str[i]=='6') { ge++; } else { sum+=quick(ge); ge=0; } } sum+=quick(ge); printf("%lld\n",sum); }}
J:
统计奇数个数。。。
代码:
#include <bits/stdc++.h>#define ll long longusing namespace std;int main(){ int n; while(~scanf("%d",&n)) { ll sum=0; ll a; while(n--) { scanf("%lld",&a); if(a&1) sum++; } printf("%lld\n",sum); }}
H:矩阵快速幂求斐波那契。
代码:
#include<stdio.h>#include<iostream>#include<string.h>using namespace std;#define ll long long inttypedef struct Matrix{ ll mat[2][2];}matrix;ll mod=1e9+7;matrix A,B;Matrix matrix_mul(matrix a,matrix b){ matrix c; memset(c.mat,0,sizeof(c.mat)); ll i,j,k; for(ll i=0;i<2;i++) { for(ll j=0;j<2;j++) { for(ll k=0;k<2;k++) { c.mat[i][j]+=a.mat[i][k]*b.mat[k][j]; c.mat[i][j]%=mod; } } } return c;}Matrix matrix_quick_power(matrix a,ll k)//矩阵快速幂0.0{ matrix b; memset(b.mat,0,sizeof(b.mat)); for(ll i=0;i<2;i++) b.mat[i][i]=1;//单位矩阵b while(k) { if(k%2==1) { b=matrix_mul(a,b); k-=1; } else { a=matrix_mul(a,a); k/=2; } } return b;}int main(){ ll n; while(~scanf("%lld",&n)) { if(n==0)break; n++; A.mat[0][0]=1;A.mat[0][1]=1; A.mat[1][0]=1;A.mat[1][1]=0; B=matrix_quick_power(A,n); cout<<(B.mat[0][1]+mod)%mod<<endl; }}
I:map记录数字个数。判断求和(我加了个set)
#include <bits/stdc++.h>#define ll long longusing namespace std;set<ll>s;set<ll>::iterator it;ll a;map<ll,int>mp;int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { s.clear(); mp.clear(); for(int i=0;i<n;i++) { scanf("%lld",&a); s.insert(a); mp[a]++; } ll ans=0; for( it=s.begin();it!=s.end();it++) { ll p=*it; // cout<<p; if(s.count(p+(ll)m)) { ans=ans+mp[p]*mp[p+(ll)m]; } } printf("%lld\n",ans); }}
K:每个糖果的分法都有m种,m^n,快速幂即可
代码:
#include <bits/stdc++.h>#define ll long longusing namespace std;ll mod=1e9+7;ll quick(ll x,ll y){ ll ans=1; while(y) { if(y&1) ans=ans%mod*x%mod; x=x%mod*x%mod; y>>=1; } return ans%mod;}int main(){ ll n,m; int t; scanf("%d",&t); while(t--) { cin>>n>>m; printf("%lld\n",quick(m,n)); }}
0 0
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(水题5道)
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛【不断更新】
- Contest1086 - 哈尔滨理工大学软件学院ACM程序设计全国邀请赛
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛 C Coin
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛【部分题解】)
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)F Fibonacci Again
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛) D. Pairs
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛 F Fibonacci Again (矩阵快速幂)
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛) D. Pairs FFT
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)A Golds 最大流
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)C Coin dp
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛 A Golds(LCA + 最大流)
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)E 666 By Assassin 坑点水题
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)F Fibonacci Again 矩阵快速幂
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(网络同步赛)L Lucky Number By Assassin 杀人的模拟题
- Android Maquee的几种实现方式
- 基于react的开发日记
- JAVA学习之-数据库设计及优化_课堂笔记
- imageview设置资源图片
- 378. Kth Smallest Element in a Sorted Matrix
- 哈尔滨理工大学软件学院ACM程序设计全国邀请赛(水题5道)
- Scala 函数响应式编程: 静态类型 (Static Types)
- MySQL主从复制搭建教程
- BurpSuit
- 烈焰部分数据库表注释说明
- 8种排序算法及性能特点
- POJ 1047 Round and Round We Go 已被翻译
- 关于hibernate 持久化中遇到的detached entity passed to persist异常解决
- 让返回键不能用