BB

好了我活了
这么长时间不写题就是会变菜啊
这种题写这么长时间QAQ

T1

这个题刚看到的时候一脸mb
然后看到数据范围就放心了
就写了个子集枚举就交上去了
但是要注意的是最后统计答案的时候,是每个数字出现的次数两两相乘再求和

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 10000 + 5;
int n,m,k;
int all[MAXN];
bool solve(int jh) {//TODO: initint tmp[MAXN] = {0};for(int i = 0;i < n;i ++) {tmp[i] = all[i];}//TODO: make tmp by jhfor(int t = 0;t < m;t ++) {if((jh >> t) & 1)continue;for(int i = 0;i < n;i ++)tmp[i] |= (1 << t);}//TODO: uniquesort(tmp, tmp + n);int l = 0,r = 0;int tot = 0;while(true) {while(tmp[l] == tmp[r])r ++;if(r > n)break;tmp[tot ++] = r - l;l = r;}//TODO: get ansint ans = 0;for(int i = 0;i < tot;i ++)for(int j = i + 1;j < tot;j ++)ans += tmp[i] * tmp[j];return ans >= k;
}int solve() {int ans = 0;for(int i = 0;i < (1 << m);i ++) {ans += solve(i);}return ans;
}int T;
int main() {scanf("%d", &T);for(int t = 1;t <= T;t ++) {memset(all, 0, sizeof(all));scanf("%d %d %d",&n, &m, &k);for(int i = 0;i < n;i ++) {for(int j = 0;j < m;j ++) {char t = getchar();while(!isalpha(t))t = getchar();if(t == 'A')all[i] |= (1 << j);}}printf("Case #%d: %d\n", t,solve());}
}

T2

emmmm T2还是有点坑的吧,要注意到字典序最小的当然就是一个字母啦!
然后就是26个前缀和,还挺好写的

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 100000 + 5;
int T;
int sum[26][MAXN];
int n,q;
char c[MAXN];
int main()
{scanf("%d",&T);for(int t = 1;t <= T; t ++){printf("Case #%d:\n",t);scanf("%d %d",&n,&q);memset(sum,0,sizeof(sum));for(int i = 1;i <= n;i ++){c[i] = getchar();while(!isalpha(c[i]))c[i] = getchar();}for(int i = 1;i <= n;i ++)sum[c[i] - 'A'][i] ++;for(int j = 0;j < 26;j ++)for(int i = 1;i <= n;i ++)sum[j][i] += sum[j][i - 1];int a,b;while(q --){scanf("%d %d",&a,&b);for(int i = 0;i < 26;i ++)if(sum[i][b] - sum[i][a - 1]){printf("%d\n", sum[i][b] - sum[i][a - 1]);break;}}}return 0;
}

T3

这是个二分图匹配?或者说网络流?
不知道,不会做
等题解吧……
【我一定好好学网络流

T4

弃疗
破题能做?

T5

T6

签到题吧……
我是跑了两遍克鲁斯卡尔
然后傻傻的吧红色和蓝色给交换掉
【这套题是告诉我们题目难度与顺序无关吗233333

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
const int MAXN = 100000 + 5;
int n,m;
struct edge
{int f,t,v;char c;bool operator < (const edge &b)const{return v < b.v;}
}e[MAXN];
struct bcj
{int fa[MAXN];void init(){for(int i = 1;i <= n;i ++)fa[i] = i;return;}int find(int x){return fa[x] == x ? x : fa[x] = find(fa[x]);}bool same(int x,int y){return find(x) == find(y);}void merge(int x,int y){x = find(x);y = find(y);fa[x] = y;return;}
}b;
int ans[MAXN],tmp[MAXN];
queue <int> q;
int kru()
{int tot = 0,count = 0;sort(e + 1, e + m + 1);b.init();while(!q.empty())q.pop();for(int i = 1;i <= m;i ++){if(e[i].c != 'B' && !b.same(e[i].f, e[i].t)){tot += e[i].v;count ++;b.merge(e[i].f, e[i].t);}elseq.push(e[i].v);}return count == n - 1 ? tot : -1;
}
void tj()
{int t = kru();if(t == -1){for(int i = 1;i <= m;i ++)ans[i] = -1;return;}for(int i = 1;i < n - 1;i ++)ans[i] = -1;ans[n - 1] = t;for(int i = n;i <= m;i ++){ans[i] = ans[i - 1] + q.front();q.pop();}return;
}
void change(int x)
{switch (e[x].c){case 'B':e[x].c = 'R';break;case 'R':e[x].c = 'B';break;default:break;}return;
}
int really(int i)
{if(ans[i] == -1)return tmp[i];if(tmp[i] == -1)return ans[i];return min(ans[i],tmp[i]);
}
int T;
int main()
{scanf("%d",&T);for(int t = 1;t <= T;t ++){printf("Case #%d:\n",t);scanf("%d %d",&n,&m);memset(tmp,0,sizeof(tmp));memset(ans,0,sizeof(ans));for(int i = 1;i <= m;i ++)scanf("%d %d %d %c",&e[i].f, &e[i].t, &e[i].v, &e[i].c);tj();for(int i = 1;i <= m;i ++)change(i);for(int i = 1;i <= m;i ++)tmp[i] = ans[i];tj();for(int i = 1;i <= m;i ++)ans[i] = really(i);for(int i = 1;i <= m;i ++)printf("%d\n",ans[i]);}return 0;
}

2018百度之星程序设计大赛 - 资格赛相关推荐

  1. 2018百度之星程序设计大赛 - 资格赛 hdu6345(找区间最小值)

    子串查询 Time Limit: 3500/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Sub ...

  2. 2018百度之星程序设计大赛资格赛(4道题的答案)

    目前是百度之星的资格赛比赛时间,写对一道题就可以进入后面的比赛了,我们初赛再见咯.明明昨天就上传该文章,可惜图片太多一直列为待审核,现在图片都删了,日后再来详细补充题目吧. ###调查问卷 #incl ...

  3. 2018百度之星程序设计大赛 - 资格赛 1002 子串查询

    子串查询 Accepts: 1262 Submissions: 5335 Time Limit: 3500/3000 MS (Java/Others) Memory Limit: 262144/262 ...

  4. 2018百度之星程序设计大赛 - 资格赛 P1006三原色图(MST,并查集)

    problem 给一张n个点m条边的有向图,每条边有一个正整数权值以及一种色光三原色红.绿.蓝之一的颜色. 恰好选出k条边,满足只用这k条边之中的红色边和绿色边(或者蓝色边和绿色边)就能使n个点之间两 ...

  5. 2018百度之星程序设计大赛-资格赛P1002子串查询(前缀和)

    因为过关要求貌似是随便A掉一道题,,,还实时给了AC率,不是摆明了让我挑最水的题写吗.. problem 给定一个字符串A[1,n]. 询问q次,A[l,r]内字典序最小的连续非空子串有多少次重复. ...

  6. 2018百度之星程序设计大赛 - 资格赛 A B C E F

    1001 思路: 问题数m是不超过10的,所以我们对问题数 m 进行状态压缩,每个状态可以得到一些问题的集合,这些问题集合是属于这 m 个问题集合中的,并且不会重复的,所以我们根据每个状态可以得到 n ...

  7. hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))

    p1m2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  8. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))

    degree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

  9. hdu6375(2018 “百度之星”程序设计大赛 - 初赛(A))

    度度熊学队列 Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

最新文章

  1. 谁能畅游智能电视红海:联想K82,还是乐视?
  2. 总结相对路径和绝对路径的写法
  3. Redmi Note10系列发布时间曝光:最高搭载1亿像素主摄
  4. mysql 核心笔记 逻辑符号 like
  5. [PowerQuery]Excel 如何开启PowerQuery组件
  6. js中this的作用域
  7. 使用微信开发工具开发微信小程序(二)——协同工作、发布与事件绑定
  8. 插入参考文献时,本该显示为[1],但显示了{Zhao,2017,#253},解决方法
  9. 解决Server2008 R2 AD服务器 域组策略 XP桌面图标蓝底
  10. 深圳java程序员培训班哪里最好,深圳java程序员培训学费(学习Java要不要报班)
  11. 绕过BIOS/UEFI固件写保护写入SPI闪存
  12. 农产品追溯管理平台解决方案
  13. linux设置定时关机及取消
  14. 倭黑猩猩优化器(Bonobo Optimizer, BO)
  15. php5.3 register_globals,在PHP 5.3中PHP寄存器全局支持?(PHP register globals support in PHP 5.3?)...
  16. JXTA技术与应用发展
  17. Task 01 强化学习基础
  18. c语言中延时函数delay1,delay什么意思_delay.h这一段是什么意思
  19. halcon编程入门四——halcon缺陷检测
  20. [BZOJ]1003 物流运输题解

热门文章

  1. Navicat for mysql 运行.sql 文件时 出现的错误
  2. 公司邮箱哪个安全?安全邮箱格式怎么填?公司邮箱号码大全
  3. 机器学习:维数约减算法PCA(主成分分析法)原理、实现与应用
  4. java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署
  5. java做一个办公用品管理系统,如何使用办公用品管理系统
  6. python计算器简单代码_自学python之简单计算器
  7. Matlab和stk通过connector连接,win7下亲测好用
  8. 【Axure高保真原型】常用文件图标元件模板
  9. html请求资源不可用,所请求的资源(/)不可用
  10. opengl编程指南第8版 环境搭建及原理