乒乓球

模拟

 /*By SilverN*/
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=;
char s[];
int a[mxn],b[mxn];//11分制胜负计数
int c[mxn],d[mxn];//21分制计数
int main(){
bool flag=;
int i,j;
int r1=,r2=;//比赛局数
while(scanf("%s",s)!=EOF && flag){
int n=strlen(s);
for(i=;i<n;i++){
if(s[i]=='E'){
flag=;
break;
}
if(s[i]=='W'){
a[r1]++;c[r2]++;
if(a[r1]>= && a[r1]-b[r1]>=)r1++;
if(c[r2]>= && c[r2]-d[r2]>=)r2++;
}
if(s[i]=='L'){
b[r1]++;d[r2]++;
if(b[r1]>= && b[r1]-a[r1]>=)r1++;
if(d[r2]>= && d[r2]-c[r2]>=)r2++;
}
}
}
for(i=;i<=r1;i++)printf("%d:%d\n",a[i],b[i]);
cout<<endl;
for(i=;i<r2;i++)printf("%d:%d\n",c[i],d[i]);
printf("%d:%d",c[r2],d[r2]);
return ;
}

数字游戏

DP 枚举分组 f[k组][前i个]=最值

 /*By SilverN*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int n,m;
int a[];
int smm[];
int fmx[][];
int fmi[][];
int mxans=,minans=1e8;
void dp(int b[]){
memset(fmx,,sizeof fmx);
memset(fmi,0x2f,sizeof fmi);
int i,j;
for(i=;i<=n;i++)smm[i]=smm[i-]+b[i];
for(i=;i<=n;i++){
fmx[i][]=fmi[i][]=(smm[i]%+)%;
}
fmi[][]=fmx[][]=;
int k;
for(k=;k<=m;k++){
for(i=k;i<=n;i++){
for(j=k-;j<i;j++){
fmx[i][k]=max(fmx[i][k],fmx[j][k-]*(((smm[i]-smm[j])%+)%));
fmi[i][k]=min(fmi[i][k],fmi[j][k-]*(((smm[i]-smm[j])%+)%));
}
}
}
mxans=max(mxans,fmx[n][m]);
minans=min(minans,fmi[n][m]);
return;
}
int main(){
n=read();m=read();
int i,j;
for(i=;i<=n;i++){
a[i]=read();
a[n+i]=a[i];
}
for(i=;i<n;i++)dp(a+i);
printf("%d\n%d\n",minans,mxans);
return ;
}

卡塔兰数

C(2*n,n)/(n+1)

 /*By SilverN*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
using namespace std;
int n;
long long ans=;
int main(){
int i,j;
scanf("%d",&n);
int ed=n*;
for(i=n+;i<=ed;i++){
ans=ans*i/(i-n);
}
ans/=(n+);
printf("%lld\n",ans);
return ;
}

麦森数

位数直接计算:log(10,2^n)

数字用高精度乘法模拟

 #include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
int la;
int t=;
unsigned int n=;//指数
struct node{
int v[];
int s;
}a,b,c;
node multiple(const node a,const node b );
void pbi(node &c,unsigned int n1)//底数 指数
{
if(n1==||n1==){
c.s=;
c.v[]=n1+;
return;
}
pbi(c,n1/);
c=multiple(c,c);
if(n1%==){
b.s=;
b.v[]=;
c=multiple(b,c);
}
} node multiple(const node a,const node b ){ //高精度乘法部分
int i,j,x=;
if(a.s==&&a.v[]==)return a;
if(b.s==&&b.v[]==)return b;
const int L=;
node c1={};
for(i=;i<L && i<a.s;i++){
for(j=;j<L && j<b.s;j++){
c1.v[i+j]+=a.v[i]*b.v[j];
c1.v[i+j+]+=c1.v[i+j]/;
c1.v[i+j]%=;
}
c1.s=i+j;
if(c1.v[i+j]!=)c1.s++;
}
if(c1.s>) c1.s=;
return c1;
}
int main(){
int i;
cin>>n;
int p=ceil(n*log10());//位数
printf("%d\n",p);
pbi(c,n);
c.v[]-=;
if(c.s>) c.s=;
for (int i=;i>=;i--)//mx
{
printf("%d",c.v[i]);
if (i%==)//50位的倍数时回车
cout<<endl;
}
return ;
}

/*By SilverN*/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>usingnamespacestd; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; int a[120]; int smm[120]; int fmx[120][20]; int fmi[120][20]; int mxans=0,minans=1e8; void dp(int b[]){ memset(fmx,0,sizeof fmx); memset(fmi,0x2f,sizeof fmi); int i,j; for(i=1;i<=n;i++)smm[i]=smm[i-1]+b[i]; for(i=1;i<=n;i++){ fmx[i][1]=fmi[i][1]=(smm[i]%10+10)%10; } fmi[0][0]=fmx[0][0]=1; int k; for(k=2;k<=m;k++){ for(i=k;i<=n;i++){ for(j=k-1;j<i;j++){ fmx[i][k]=max(fmx[i][k],fmx[j][k-1]*(((smm[i]-smm[j])%10+10)%10)); fmi[i][k]=min(fmi[i][k],fmi[j][k-1]*(((smm[i]-smm[j])%10+10)%10)); } } } mxans=max(mxans,fmx[n][m]); minans=min(minans,fmi[n][m]); return; } int main(){ n=read();m=read(); int i,j; for(i=1;i<=n;i++){ a[i]=read(); a[n+i]=a[i]; } for(i=0;i<n;i++)dp(a+i); printf("%d\n%d\n",minans,mxans); return0; }

[NOIP2003] 普及组的更多相关文章

  1. 洛谷 P1045 & [NOIP2003普及组] 麦森数

    题目链接 https://www.luogu.org/problemnew/show/P1045 题目大意 本题目的主要意思就是给定一个p,求2p-1的位数和后500位数. 解题思路 首先看一下数据范 ...

  2. [NOIP2003普及组]麦森数(快速幂+高精度)

    [NOIP2003普及组]麦森数(快速幂+高精度) Description 形如2^P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2^P-1不一定也是素数.到1998 ...

  3. 【转】[NOIP2003普及组]麦森数

    来源:http://vivid.name/tech/mason.html 不得不纪念一下这道题,因为我今天一整天的时间都花到这道题上了.因为这道题,我学会了快速幂,学会了高精度乘高精度,学会了静态查错 ...

  4. 【动态规划】Vijos P1218 数字游戏(NOIP2003普及组)

    题目链接: https://vijos.org/p/1218 题目大意: 一个N个数的环,分成M块,块内的数求和%10,最后每块地值累乘,求最大和最小. n(1≤n≤50)和m(1≤m≤9)太小了可以 ...

  5. P1045 [NOIP2003 普及组] 麦森数

    题目描述 形如2^P−1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2^P−1不一定也是素数. 到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377, ...

  6. NOIP2003 普及组 洛谷P1045 麦森数 (快速幂+高精度)

    有两个问题:求位数和求后500位的数. 求位数:最后减去1对答案的位数是不影响的,就是求2p的位数,直接有公式log10(2)*p+1; 求后500位的数:容易想到快速幂和高精度: 1 #includ ...

  7. NOIP2002-2017普及组题解

    虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...

  8. NOIP2012 普及组 T3 摆花——S.B.S.

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  9. NOIP2016普及组复赛解题报告

    提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...

随机推荐

  1. SQL Server 2008还原数据库的具体方法

    俗话说“好记性不如烂笔头”,在相隔较长的时间段内,每次还原客户的数据库都记不清完全的步骤,为此mark一下. SQL Server 2008一般默认备份的文件格式是bak,即后缀名为.bak.bak文 ...

  2. kde framework概述(KDE Framework译文)

    KDE Frameworks 基于QT框架,提供简单实用的类(例如那些KCoreAddons里的类)去为桌面应用的日常需要整合出解决方案(例如KNewStuff用于在应用中获取可下载的附加内容,或者那 ...

  3. spring Existing transaction found for transaction marked with propagation 'never' 解决

    先在申明事务中配置了所有的事务 <!--配置事物传播策略,以及隔离级别--> <tx:advice id="txAdvice" transaction-manag ...

  4. std::map插入已存在的key时,key对应的内容不会被更新

    std::map插入已存在的key时,key对应的内容不会被更新,如果不知道这一点,可能会造成运行结果与预期的不一致 “Because element keys in a map are unique ...

  5. Elasticsearch插件清单

    1.API插件:主要对Elasticsearch添加的API特性或者功能,通常用于搜索或者映射 2. 报警插件: 当Elasticsearch的索引指标超过阀值时就会触发 3. 分词插件:ik是比较好 ...

  6. SOE 第五章

    SEO第五章 本次课目标: 1.  掌握代码优化 2.  掌握内链优化 一.代码优化 1)<h>标签 代表网页的标题,总共6个级别(h1-h6) 外观上显示字体的大小的修改,其中<h ...

  7. iview 的 Carousel 走马灯 焦点图 不能用 建议换/vue-awesome-swiper

    https://www.npmjs.com/package/vue-awesome-swiper

  8. easyui前端框架01

    一. 三大前端框架的特点 1.easyui=jquery+html4 优点:快速开发.功能齐全 .免费 缺点:不好看.不支持相应式开发 2.bootstrap=jquery+html5 优点: 功能强 ...

  9. Perl中 qw 是 “quoted Word” 或是 “quoted by whitespace”的简写

    Perl中 qw 是 “quoted Word” 或是 “quoted by whitespace”的简写 eg: @strict_pragma = qw ( a b c);

  10. PHP中的正则

    概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配.替换.截取匹配的字符串. j简单的说就是通过一些规定的符号和字符组合成的一种语法规则 其实,只有了解一种语言的正则使用 ...