D - What a Beautiful Lake

找递增长度递减长度-1

# include<bits/stdc++.h>
#define maxn 205
using namespace std;
int n;
int a[maxn];
int main(){//freopen("in.txt","r",stdin);while(scanf("%d",&n)!=EOF){if(!n) break;for(int i=0;i<n;i++) scanf("%d",&a[i]),a[i+n]=a[i];int res=0;for(int i=0;i<2*n;i++)for(int j=i;j<2*n;j++){bool flg1=1,flg2=1;for(int k=i+1;k<=j;k++){if(a[k]<=a[k-1]) flg1=false;if(a[k]>=a[k-1]) flg2=false;}if(flg1||flg2)res=max(res,j-i);}res=min(res,n-1);cout<<res<<endl;}return 0;
}

E - What a Ridiculous Election

双向宽搜。

#include <bits/stdc++.h>using namespace std;
typedef long long ll;int vis[100000][4][3];struct node{int now,t2,t3,step;node(){}node(int _now,int _t2,int _t3,int _step):now(_now),t2(_t2),t3(_t3),step(_step){}
};queue<node> Q;int base[10],top;inline int get1(int now,int i){memset(base,0,sizeof base);top=0;while(top<=4){base[++top]=now%10;now/=10;}swap(base[i],base[i+1]);int ret=0;for(int j=5;j>=1;j--)ret=ret*10+base[j];return ret;
}inline int get2(int now,int i){memset(base,0,sizeof base);top=0;while(top<=4){base[++top]=now%10;now/=10;}base[i]=(base[i]+1)%10;int ret=0;for(int j=5;j>=1;j--)ret=ret*10+base[j];return ret;
}inline int get3(int now,int i){memset(base,0,sizeof base);top=0;while(top<=4){base[++top]=now%10;now/=10;}base[i]=(base[i]*2)%10;int ret=0;for(int j=5;j>=1;j--)ret=ret*10+base[j];return ret;
}void init(){memset(vis,63,sizeof vis);Q.push(node(12345,3,2,0));vis[12345][3][2]=0;while(!Q.empty()){int now=Q.front().now;int t2=Q.front().t2;int t3=Q.front().t3;int step=Q.front().step;Q.pop();//cout<<t2<<" "<<t3<<endl;//1for(int i=1;i<=4;i++){int newt=get1(now,i);if(vis[newt][t2][t3]<=step+1) continue;vis[newt][t2][t3]=step+1;Q.push(node(newt,t2,t3,step+1));}//2if(t2>0){for(int i=1;i<=5;i++){int newt=get2(now,i);if(vis[newt][t2-1][t3]<=step+1) continue;vis[newt][t2-1][t3]=step+1;Q.push(node(newt,t2-1,t3,step+1));}}//3if(t3>0){for(int i=1;i<=5;i++){int newt=get3(now,i);if(vis[newt][t2][t3-1]<=step+1) continue;vis[newt][t2][t3-1]=step+1;Q.push(node(newt,t2,t3-1,step+1));}}}
}int main(){//freopen("in.txt","r",stdin);init();//cout<<get1(2345,1)<<endl;int n;char st[20];while(~scanf("%s",&st)){n=0;for(int i=0;i<(int)strlen(st);i++)n=n*10+st[i]-'0';int Min=vis[0][0][0];for(int i=0;i<=3;i++)for(int j=0;j<=2;j++)Min=min(Min,vis[n][i][j]);if(Min==vis[0][0][0]) Min=-1;printf("%d\n",Min);}return 0;
}

F - What a Simple Research

模拟。

#include <bits/stdc++.h>using namespace std;
struct node {char c;int num;
};bool cmp(node a,node b) {if(a.num==b.num) return a.c<b.c;else return a.num>b.num;
}
int m,n;
node a[10];
char s[200];
int main() {//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);while(scanf("%d%d",&n,&m)!=EOF) {if(n==0&&m==0) break;a[0].c='A';a[1].c='C';a[2].c='D';a[3].c='E';a[4].c='G';a[0].num=0;a[1].num=0;a[2].num=0;a[3].num=0;a[4].num=0;for(int i=1;i<=n;i++) {scanf("%s",s);//printf("%s\n",s);for(int j=0;j<m;j++) {if(s[j]=='A') a[0].num++;if(s[j]=='C') a[1].num++;if(s[j]=='D') a[2].num++;if(s[j]=='E') a[3].num++;if(s[j]=='G') a[4].num++;}}sort(a,a+5,cmp);int flg=0;for(int i=0;i<5;i++) {if(a[i].num) {if(flg) printf(" ");flg=1;printf("%c %d",a[i].c,a[i].num);}}printf("\n");}return 0;
}

I - A Boring Problem

前项向后项转移可以有低阶的利用二项式定理展开,需要注意维护的是前缀k次方和,求的是和的k次方。

#include <bits/stdc++.h>using namespace std;
typedef long long ll;
const int mod = 1000000007;
ll C[200][200];ll pow1[200],pow2[200],pp,p1,p2;int n,k;char st[50005];
ll S[50005];
ll ans[50005];
ll PM[50005][105];void init(){C[0][0]=1;for(int i=1;i<=150;i++){C[i][0]=1;for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;}
}int main(){//freopen("in.txt","r",stdin);init();int T;cin>>T;while(T--){scanf("%d%d",&n,&k);scanf("%s",st+1);int len=strlen(st+1);for(int i=1;i<=len;i++)S[i]=S[i-1]+st[i]-'0',PM[i][0]=S[i];for(int i=1;i<=len;i++)for(int j=1;j<=k;j++)PM[i][j]=PM[i][j-1]*PM[i][0]%mod;for(int i=1;i<=len;i++)for(int j=0;j<=k;j++)PM[i][j]=(PM[i][j]+PM[i-1][j])%mod;p1=p2=0;for(int i=1;i<=len;i++){ans[i]=0;p1=S[i];pow1[0]=1;for(ll c=1;c<=k;c++)pow1[c]=pow1[c-1]*p1%mod;ans[i]=pow1[k]*i%mod;for(int c=1;c<=k;c++){ll ft=1;if(c&1) ft=-1;ans[i]=(ans[i]+C[k][c]*pow1[k-c]%mod*PM[i-1][c-1]%mod*ft)%mod;}if(ans[i]<0) ans[i]+=mod;}for(int i=1;i<=n;i++)printf("%lld%c",ans[i]," \n"[i==n]);}return 0;
}

K - JiLi Number

大约到1e9的时候就几乎没有这类数了,打表找出来。

#include <bits/stdc++.h>using namespace std;
typedef long long ll;const ll d[100]={0
,1
,199981
,199982
,199983
,199984
,199985
,199986
,199987
,199988
,199989
,199990
,200000
,200001
,1599981
,1599982
,1599983
,1599984
,1599985
,1599986
,1599987
,1599988
,1599989
,1599990
,2600000
,2600001
,13199998
,35000000
,35000001
,35199981
,35199982
,35199983
,35199984
,35199985
,35199986
,35199987
,35199988
,35199989
,35199990
,35200000
,35200001
,117463825
,500000000
,500000001
,500199981
,500199982
,500199983
,500199984
,500199985
,500199986
,500199987
,500199988
,500199989
,500199990
,500200000
,500200001
,501599981
,501599982
,501599983
,501599984
,501599985
,501599986
,501599987
,501599988
,501599989
,501599990
,502600000
,502600001
,513199998
,535000000
,535000001
,535199981
,535199982
,535199983
,535199984
,535199985
,535199986
,535199987
,535199988
,535199989
,535199990
,535200000
,535200001
,1111111110
};int main(){//freopen("in.txt","r",stdin);char st[205];while(~scanf("%s",st)){int len = strlen(st);if(len>11){puts("83 1111111110");continue;}ll n=0;for(int i=0;i<len;i++)n=n*10+st[i]-'0';int k=83;for(;k>=1;k--){if(d[k]<=n) break;}printf("%d %lld\n",k,d[k]);}return 0;
}

转载于:https://www.cnblogs.com/foreignbill/p/7875902.html

2016 ICPC 北京相关推荐

  1. 2016 ICPC 北京网络赛 A 恶心模拟 F 循环矩阵,FFT(待补) I 模拟

    2016 ICPC 北京网络赛 A - The Book List 题意:每本书有所属种类,给出原生的存放方式,求按新的方式存放的样子. tags:坑到心态爆炸的题==  直接堆进vector里搞的, ...

  2. php北京平均工资,2016年北京平均工资是多少?

    2016年北京平均工资是多少呢?统计报告显示,2016年北京平均工资为6906元.在北京平均工资统计报告中,薪资范围在4500元-6000元之间的占比最高,达到18.7%.也就是说,每100个北京市劳 ...

  3. 2014 ACM/ICPC 北京赛区网络赛解题报告汇总

    首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...

  4. 2016 ICPC总结

    2016 ICPC总结 九月份开学,开始知识点的补充,刚开始的几周都在刷acmsteps,十月开始进行专题性的学习,首先进行的数据结构,给自己定的计划,十一月前看完数据结构,刚开始的时候看的都是以前的 ...

  5. 计算机科学实验班高考线,北京工业大学计算机科学与技术(实验班)专业2016年在北京理科高考录取最低分数线...

    类似问题答案 北京工业大学计算机科学与技术(实验班)专业2016年在北京理科高考录取最低分数线 学校 地 区 专业 年份 批次 类型 分数 北京工业大学 北京 计算机科学与技术(实验班) 2016 一 ...

  6. 2017 ACM/ICPC 北京赛区小结 By jsb @Reconquista

    Statistics TYPE: Onsite Contest NAME: 2017 - ICPC - Asia Beijing PLAT: hihoCoder TIME: 2017/11/19 09 ...

  7. 2016年北京hadoop in china见闻

    一. 概况 笔者有幸参加了今年在北京主办的hadoop in china,在与会中有不少的感受与大家分享.今年的hadoop in china整体来看,参加会议的人比较多,在第一天上午场的topic里 ...

  8. 【租房数据分析】2016年在北京如何租到好房子?

    过年之后,很多人选择租房.我的不少朋友告诉我,"之前你公众号发布的北京买房攻略很有趣,可是不接地气,能不能分析一下帝都租房啊"! 我想也是,春节后我配置了爬虫工具,从北京各大中介网 ...

  9. 2011 ACM/ICPC 北京现场赛 B HouYi's secret

    周日起床后看见QQ群消息说 bupt上有半同步北京现场赛试题,就进入看了下题,一共读了两个题 A和B(因为这两个题目当时就都提交的很多) A题不会做,有限制的生成树的这类知识好像还没有接触过... B ...

最新文章

  1. pip安装itchat模块成功后annocanda中No module named 'itchat'
  2. WEB学习-CSS盒模型
  3. Devexpress的Datalayout控件
  4. OpenStack(二)——Keystone组件
  5. linux软件依赖库,【Linux】ubuntu系统安装及软件依赖库
  6. Shell脚本:Linux下定时备份MySQL数据库
  7. (50)FPGA状态机描述(三段式)
  8. 用java实现combin函数_Java8的CompletableFuture
  9. 【阅读】《番茄工作法图解》---让工作更高效
  10. 一个c3p0的数据库连接池的多线程测试
  11. ztree 使用教程
  12. 机器学习基础篇-逻辑回归和多分类问题
  13. python sort函数原理_python sort函数原理
  14. 防侧漏之弱引用的使用
  15. 聊天系统:服务端 + 客户端 + web端
  16. Springboot2.x使用feign自定义Decoder,Advice
  17. c++/mfc 播放音乐,视频文件
  18. 生鲜电商Instacart再度下调估值:降至130亿美元 暂不IPO
  19. Redis 基础知识点总结
  20. 新书推荐 |《AI安全之对抗样本入门》

热门文章

  1. 利用域名(host碰撞)碰撞实现从任何地方发起中间人攻击(理论篇)
  2. Ubuntu 解决 pip 安装 lxml 出现 x86_64-linux-gnu-gcc 异常
  3. Chromium CEF 2623 -- 支持 xp 的最后一个版本源码下载和编译步骤
  4. FirstDjangoWebApp-1
  5. kaili camera
  6. 什么是中台架构?真的“烧钱”吗?
  7. 只有22%的人做对了这道数据分析题,你来试试吗?
  8. 2019升职加薪必备:你一定要修炼的产品思维
  9. 给你多少钱,你才会愿意为国家生孩子?
  10. 阿里云96页报告详解《云上转型》(10个案例、10大趋势/完整版PPT)