第一题

模拟送分。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
int read()
{char c;int s=0,t=1;while(!isdigit(c=getchar()))if(c=='-')t=-1;do{s=s*10+c-'0';}while(isdigit(c=getchar()));return s*t;
}
/*------------------------------------------------------------*/
const int inf=0x3f3f3f3f,maxn=101000,MOD=1000000007;int n;
char s[maxn],ans[maxn],nows[maxn];
int main()
{int T;scanf("%d",&T);while(T--){scanf("%s",s+1);int n=strlen(s+1);int nowstep=0,len=0,tot=0;for(int i=1;i<=n;i++)if(isdigit(s[i])){if(nowstep==1){nows[++len]=s[i];}else if(nowstep==2){for(int j=1;j<=s[i]-'0';j++){for(int k=1;k<=len;k++){ans[++tot]=nows[k];}}len=0;nowstep=0;}elseif(nowstep==0)ans[++tot]=s[i];}else{if(nowstep==0&&s[i]=='(')nowstep=1;elseif(nowstep==1&&s[i]==')')nowstep=2;}long long ansnum=0;for(int i=1;i<=tot;i++)ansnum=(ansnum*10+ans[i]-'0')%MOD;printf("%lld\n",ansnum);}return 0;
}

View Code

第二题

数学相关,弃坑。

第三题

题意:一个2*n的网格,再保证步数最少的情况下,求从任意格出发遍历完所有格的方案数,格子八连通。n<=10000,T<=100。

算法:数学+递推DP

题解:【HDU】6146 Pokémon GO

第四题

计算几何相关,弃坑。

第五题

题意:定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数。T<=200,lenth(n)<=100

算法:数位DP

题解:【HDU】6148 Valley Numer

第六题

题意:一个无向图,k个给定点为高点,其余为低点,要求拼成若干个高-低-高的三元组(“-”表示有边直连),三元组之间点不重复,求至多拼成多少个三元组。

n<=30,k<=15,T<=20

算法:状压DP

题解:看数据范围猜算法!

f[x][i]表示加入第x个低点后,高点占领状态为i的最大三元组个数,初始f[0][0]=0,显然x可以滚动。

每次加入一个低点,枚举状态,然后在状态中找到两个高点配起来,或不配状态直传。

配的过程用dfs枚举,复杂度(n-k)*2^k*C(2,k),极限15*2^15*14*15≈10^8,果然要相信自己啊!

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
int read()
{char c;int s=0,t=1;while(!isdigit(c=getchar()))if(c=='-')t=-1;do{s=s*10+c-'0';}while(isdigit(c=getchar()));return s*t;
}
/*------------------------------------------------------------*/
const int inf=0x3f3f3f3f,maxn=40,maxk=80010;int n,f[2][maxk],c,k,m,hi[maxn];
bool map[maxn][maxn],high[maxn];
void dfs(int dep,int now,int pre,int cyc,int x){if(dep==3){f[now][c]=max(f[now][c],f[pre][cyc]+1);}else{for(int i=0;i<=k-1;i++)if(map[x][hi[i+1]]&&!(c&(1<<i))){c|=(1<<i);dfs(dep+1,now,pre,cyc,x);c^=(1<<i);}}
}
int main()
{int T;scanf("%d",&T);while(T--){n=read();m=read();k=read();int u,v;memset(map,0,sizeof(map));for(int i=1;i<=m;i++){u=read();v=read();map[u][v]=map[v][u]=1;}memset(high,0,sizeof(high));for(int i=1;i<=k;i++){u=read();high[u]=1;}int nowk=0;for(int i=1;i<=n;i++)if(high[i])hi[++nowk]=i;k=nowk;memset(f,0,sizeof(f));int x=1;for(int i=1;i<=n;i++)if(!high[i]){x=1-x;memset(f[x],0,sizeof(f[x]));for(int j=0;j<(1<<k);j++){f[x][j]=max(f[x][j],f[1-x][j]);c=j;dfs(1,x,1-x,j,i);}}int ans=0;for(int i=0;i<(1<<k);i++)ans=max(ans,f[x][i]);printf("%d\n",ans);}return 0;
}

View Code

战果:rank 100,naive successful!开心>w<!

转载于:https://www.cnblogs.com/onioncyc/p/7403631.html

【比赛】百度之星2017 复赛相关推荐

  1. 【百度之星2017】资格赛-题3-度度熊与邪恶大魔王

    题目 Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻 ...

  2. 百度之星 2017初赛第一场 1005 今夕何夕

    今夕何夕  Accepts: 1345  Submissions: 5533  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32 ...

  3. 百度之星2017 HDU 6114 Chess 组合数学

    Chess 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6114 Description 車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋 ...

  4. 百度之星2017资格赛1003 度度熊与邪恶大魔王

    Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式 ...

  5. 【原创】【百度之星2017资格赛1003】度度熊与邪恶大魔王

    度度熊与邪恶大魔王 Accepts: 3107 Submissions: 19305 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3276 ...

  6. 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包

    定义状态dp[i][j][t]代表前i种攻击,当前怪物生命值为j,防御力为t,所需要的最小代价. 利用完全背包的方法很容易得到 (p[i] = 第i种方法的攻击值减去防御值t) dp[i][j][t] ...

  7. 百度之星2017资格赛T3 度度熊与邪恶大魔王 背包

    Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式 ...

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

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

  9. 2017百度之星 复赛

    作为一只菜鸡,这可能是我OI生涯中最后一次打百度之星了,希望明年这个时候能不退役(虽然不大可能) 开始贴题解吧.会持续更新. 1001 Arithmetic of Bomb 煞笔模拟题,1A #inc ...

最新文章

  1. AndroidFFmpeg
  2. bzoj1257 数学整理二分查询
  3. vuex语法精简(方便开发查阅)
  4. MVC +EF+linq 多表联查
  5. 一个面试题关于变量的生命周期
  6. Linux常用命令的缩写含义
  7. 《Web漏洞防护》读书笔记——第6章,XXE防护
  8. Java线程 生产者--消费者模式总结(一)
  9. PowerDesigner生成Oracle数据库时,表名会带引号问题
  10. 启动虚拟机异常(超完整版)Win10
  11. 使用python画出简易的滑稽表情
  12. 玩转华为ENSP模拟器系列 | 接入用户采用Windows7客户端通过IKEv2方式接入总部VdPdNd(采用证书认证方式)
  13. Spring session redis ERR unknown command 'CONFIG'
  14. 小游戏正在毁灭微信群聊(文中有福利)
  15. 多模态情感分析的研究现状
  16. PyTorch载入预训练权重方法和冻结权重方法
  17. 移动端iOS中input输入框搜索框软键盘出现换行而不是搜索
  18. 希腊字母含义及快捷键输入
  19. docker Starting MySQL database server mysqld fail解决办法
  20. IE10及以上CSS滤镜失效(偶然发现)

热门文章

  1. vmware 多外网ip
  2. 神泣单机服务器维护,神泣9.0网游单机版网单一键服务端 魔王归来
  3. oracle语法_PG数据库sql语法总结,与Oracle有什么不同?
  4. ip68能达到什么程度防水_电子主控电路板使用什么样的胶水可以达到防水效果?...
  5. signature=2d36ad490c0d9e19a6dc808d43a34033,Matemàtica discreta : problemes resolts
  6. 深圳职业技术学院计算机专业组代码,深圳职业技术学院代码是多少 有哪些优势专业...
  7. mysql 去重 根据id_点赞功能,用MySQL还是Redis
  8. 自制计算机语言,3个步骤实现简单语言解释器(自制简易编程语言)
  9. Javascript堆排序
  10. vscode怎么连接mysql_如何在VSCode连接使用MySQL数据库?