百度之星
z岁月无声
这个作者很懒,什么都没留下…
展开
-
2018"百度之星"程序设计大赛 - 资格赛-1001,1002,1006
1001-调查问卷 思路:暴力所有问题集即1-->(1<<m)-1,先预处理将AB转换为二进制10,例如AA为二进制11,保存为3。遍历问题集s,将所有试卷集也s的与运算结果t用map<int,int> imap保存下来,imap[t]++;这样所有的试卷结果都分开了,再计算不同试卷的对数即可。 Code : #include<iostream>...原创 2018-08-06 20:24:28 · 175 阅读 · 0 评论 -
2018 “百度之星”程序设计大赛 - 初赛(A)1002-度度熊学队列
思路:STL大法好呀--菜鸡的我QAQ Code: #include<iostream> #include<algorithm> #include<list> #include<cstdio> using namespace std; const int MAX_N=150005; int n,Q; list<int> lis...原创 2018-08-12 12:58:12 · 310 阅读 · 0 评论 -
2018 “百度之星”程序设计大赛 - 初赛(B)-1004 p1m2
思路:二分答案,对于二分值h,判断其是否满足条件,可遍历a[i],对于小于等于h,sum-=(h-a[i])*2,大于h的,则需要对其奇偶判断,因为每次只能减2,因此只能为偶数,即将多余的1去掉即可 Code : #include<iostream> #include<algorithm> using namespace std; typedef long lon...原创 2018-08-12 23:05:35 · 266 阅读 · 0 评论 -
2018 “百度之星”程序设计大赛 - 初赛(B)-1001 degree
思路:对于入度最多的点即边最多的点,首先找到边最多的点,ans=边数。然后利用并查集求出区域块的个数s,对于除自己所在的区域块可以直接连一条边,ans=ans+s-1,然后再连一个点的话就需要消一条边以防止有环,ans=ans+k,还需要判断其不能大于n-1. Code : #include<iostream> #include<algorithm> #inclu...原创 2018-08-12 23:28:43 · 287 阅读 · 0 评论 -
2018"百度之星"程序设计大赛 - 资格赛-1005 序列计数
思路:dp[i][k]表示:以a[i]为右端点时长度为k的上升子序列的个数,转换公式比较容易写出来 dp[i][k]=sum{dp[j][k-1]} (a[j]<a[i],j<i) 可以看出有 i,j,k三重循环,时间复杂度为 O(n^3) 会TLE,因此看能不能减小一重循环 又转换方程看出,dp[i][k]为前i-1个a[j]<a[i]的总和,有a[j]<a[i...原创 2018-08-17 15:06:13 · 347 阅读 · 0 评论