作为一只菜鸡,这可能是我OI生涯中最后一次打百度之星了,希望明年这个时候能不退役(虽然不大可能)

开始贴题解吧。会持续更新。

1001 Arithmetic of Bomb
煞笔模拟题,1A

#include<cstdio>
#include<algorithm>
#include<cstring>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=1e5+5;
const int mo=1e9+7;
int n,m;
char s[N],s1[N],ch[N],s2[N];
int main()
{int cas;scanf("%d",&cas);while (cas--){scanf("%s",s);int len=strlen(s),m=0,i=0;while (i<=len-1){if (s[i]=='('){int cnt=0;i++;while (s[i]!=')'){ch[++cnt]=s[i];i++;}i+=3;int cnt1=0;while (s[i]!=')'){s2[++cnt1]=s[i];i++;}int tim=0,c=1;fd(j,cnt1,1)tim=(tim+1ll*(s2[j]-'0')*c%mo)%mo,c=1ll*c*10%mo;while (tim--){fo(j,1,cnt)s1[++m]=ch[j];}i++;}else{s1[++m]=s[i];i++;}}int ans=0,c=1;fd(i,m,1){ans=(ans+1ll*(s1[i]-'0')*c%mo)%mo;c=1ll*c*10%mo;}printf("%d\n",ans);}
}

1002
此题目前为止也只有6个人,一开始没注意到原来展开也可以是个int以内的数,直接像1001展开1e9就炸了= =要用快速幂合并,其实快速幂挺容易想到,但是整个题就是这个合并,是个码农题。口头ACqwq。

1003
蓝桥杯原题,统计原理,打个表一切就出来了,要注意的是从边角出发和从中间出发步数不一样,不能随便不经思考下结论。
http://blog.csdn.net/yanghui07216/article/details/50490089

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define ll long long
#define M 1000000007
using namespace std;
ll a[200010];
ll b[20010];
int main()
{  int n,i;  int cas;scanf("%d",&cas);while (cas--){  scanf("%d",&n);b[1]=1;  for(i=2;i<=n;i++)  b[i]=(b[i-1]*2%M);  a[1]=1;a[2]=6;  for(i=3;i<=n;i++)  a[i]=(b[i]+2*a[i-1]+4*a[i-2])%M;  ll sum=4*a[n];  for(i=2;i<n;i++)  {  sum+=(((8*a[n-i]*b[i-1])%M+8*b[n-i]*a[i-1])%M)%M;  sum%=M;  }  if(n==1)  sum=2;  printf("%lld\n",sum);  }  return 0;
}  

1004 留坑,不会做

1005数位dp,很久没打各种被坑,爽的一匹。
记录dp[i][j][k]表示做到第i位,前一个数为j,k表示前面是递增还是不递增,0/1状态。
记忆化搜索,由于很久没做过数位dp很多细节都忘记了,现在重新回顾一下,dalao可以跳过。
假如现在是递增状态,那么当前位的数必须是pre到当前位能取的最高数,设为end,那么明显,假如前一位未取满,那么这一位end随便搞,否则就不能超过原字符串中的数字。
假如不是,那么枚举他是否转移到递增状态,转移到很简单。
如果不转移,还是不递增,那么正常转移,当然,有一种特殊情况,就是前一位是0,这一位还是0,这种情况要打标记特殊处理,相当于直接全部为0。
最后我们对于不限制的情况用dp数组存一下,受限制的情况用dfs算就好了

#include<cstdio>
#include<algorithm>
#include<cstring>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=205;
const int mo=1e9+7;
typedef long long ll;
ll dp[N][15][5];
ll p[N];
int num[N];
inline ll dfs(int pos,int status,int pre,int limit)
{if (pos<1)return 1;if (!limit&&dp[pos][pre][status]!=-1)return dp[pos][pre][status];int end=limit?num[pos]:9;ll ans=0;if(status){fo(i,pre,end){ans+=dfs(pos-1,status,i,limit&&i==end);ans%=mo;}}else{fo(i,0,end){if (i>pre)ans=(ans+dfs(pos-1,1,i,limit&&i==end))%mo;else{if (!i&&pre==10)ans+=dfs(pos-1,0,10,limit&&i==end);else ans+=dfs(pos-1,0,i,limit&&i==end);ans%=mo;}}}if (!limit)dp[pos][pre][status]=ans;return ans;
}
inline ll solve(char s[])
{int len=strlen(s);fo(i,0,len-1){num[len-i]=s[i]-'0';}return dfs(len,0,10,1);
}
int main()
{char s[N];memset(dp,-1,sizeof(dp));int cas;scanf("%d",&cas);while (cas--){scanf("%s",s);printf("%lld\n",solve(s)-1);}
}

1006 题解tag是折半状压网络流
不存在的,不会。留坑也填不了。

2017百度之星 复赛相关推荐

  1. 2017百度之星复赛:1003. Pokémon GO(递推)

    Pokémon GO  Accepts: 738  Submissions: 1725  Time Limit: 3000/1500 MS (Java/Others)  Memory Limit: 3 ...

  2. 2017百度之星复赛:1006. Valley Numer(数位DP)

    Valley Numer  Accepts: 548  Submissions: 1125  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

  3. 2017 百度之星 复赛 Valley Numer(数位dp)

    Valley Numer 数位dp,state标志前面若干位是否存在递增序列. 代码: #include <bits/stdc++.h> using namespace std;typed ...

  4. 2017百度之星程序设计大赛 - 复赛 01,03,05

    Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  5. 2017百度之星总结

    2017百度之星总结 从陕西省赛回来之后就退役了,刚开始的时候很迷茫也很颓废,期末考也没有考好.因为我的某一些个人原因只能选择退队,很对不起johsnows和UMR,让他们两个独自去面对下半年的CCP ...

  6. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))

    Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  7. 2016百度之星复赛 1003 拍照 优先队列

    2016"百度之星" - 复赛(Astar Round3) Ended  2016-05-29 14:00:00 - 2016-05-29 17:00:00 Current Tim ...

  8. HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. 2016百度之星复赛 1003 拍照 扫描线

    原题见1003 有n条船平行于x轴,已知初始时刻的位置,向平行于x轴正向或反向走.所有船速度大小一致.现在海哥站在x轴上,要给船拍照,角度为朝向+y方向的固定90度,可以在任意时刻.任意位置拍,问何时 ...

最新文章

  1. Go 知识点(06)— for range 切片并对切片进行 append 不会造成死循环
  2. 利用 OpenCV+ConvNets 检测几何图形
  3. ddl mysql_mysql 5.6 在线 DDL
  4. 机器学习经典算法之线性回归sklearn实现
  5. CSS3+JS切割轮播图
  6. 初识Mysql(part16)--我需要知道的2条Mysql语句之子查询
  7. 研发协同平台持续集成Jenkins作业设计演进
  8. 帝国网站管理系统(ECMS)电影模块在IE下不能使用的解决办法
  9. 正态分布的概率密度函数python_如何实现高斯分布的概率密度函数
  10. Git基础学习(黑马程序员笔记)
  11. 设计模式之禅——模板方法模式钩子方法
  12. RFC791:INTERNET PROTOCOL网络协议
  13. mod mpm event php7.1,CentOS 7 安裝 PHP-FPM 及使用 mod_mpm_event
  14. win10开始菜单卡住没反应,其他都没问题 看视频也没问题。
  15. map的基本使用-go篇
  16. dp hdu5653 xiaoxin and his watermelon candy
  17. WordPress快速增加百度收录,加快网站内容抓取
  18. 黑色沙漠首发五职业PVP强度排行
  19. linux下usb充电问题,如何解决在Ubuntu上iPad不能充电的问题
  20. 结构方程模型(SEM)在生态学领域中的实践

热门文章

  1. Flink Forward Asia 2019 总结和展望 - 附PPT下载
  2. PlayFair密码原理、代码
  3. 2016秋季找工作纪实
  4. linux开发板ftp,用ftp从linux上下载文件到开发板的方法
  5. 杨老师课堂之网页制作HTML的学习入门-含有案例
  6. NBA常规赛总三分排行榜(数据截止至11年4月14日)
  7. arcgis定义投影报错
  8. 练习题 William's Colored Pencils
  9. colored manual page
  10. splunk-kvstore