记一次无限挂的考试
2017-05-07 20:22
183 查看
题目和详细的题解见3C杯
“这就是颓了两个月树而完全没有颓DP的代价。”
f[i][j]表示有i堆时选到第j堆的概率。状态转移方程(?)如下:
然后是个人都会O(n)回答每一组数据,因为T和n的数据范围一样一样的,所以我们可以认为复杂度是O(n2),不用优化辣~
蒟蒻要好好颓DP了QwQ
这是lyp报复社会的题……
把有无边变成两个颜色的边,然后两个答案的总数就是总三元环数减去杂色三元环数。a[i]表示度数。
杂色三元环数即:∑ni=1a[i]∗(n−1−a[i])/2
然后枚举两条边判断有边的三元环个数,复杂度是O(mm‾‾√)。有个链式hash不会打丫。
woc所谓链式hash就是用链表储存hash而防止重复ya
就像尼们平时打的链表储存图一样。
在这里可以放一下code:
蒟蒻要好好学学hash丫
第一眼还以为是个数论神题呢,后来发现筛出素数后枚举它们的基数次方就可以了欸(居然这么水不科学……)
然后刘汝佳给的素数线性筛果然不是很靠谱,只能过30分的数据……
正常的素数线性筛应该这么打:
然后因为prime显然单调,所以当prime[i]只能乘一次的时候,后面的素数显然也最多只能来一次,二分高出最大的可乘素数。然后居然就可以过了……(本来是有个利用数学原理的神奇剪枝的,不过不需要呢)
总之,太弱怪谁……
T1:DP
全世界都会写T1除了我。“这就是颓了两个月树而完全没有颓DP的代价。”
f[i][j]表示有i堆时选到第j堆的概率。状态转移方程(?)如下:
for(int i=1;i<=1000;i++) for(int j=1;j<=i;j++) f[i][j]=1-0.5*(f[i-1][j]+f[i-1][j-1]);
然后是个人都会O(n)回答每一组数据,因为T和n的数据范围一样一样的,所以我们可以认为复杂度是O(n2),不用优化辣~
蒟蒻要好好颓DP了QwQ
T2
全世界都能拿到T2的暴力分然而还是除了我。(对那个神奇的运行错误……)这是lyp报复社会的题……
把有无边变成两个颜色的边,然后两个答案的总数就是总三元环数减去杂色三元环数。a[i]表示度数。
杂色三元环数即:∑ni=1a[i]∗(n−1−a[i])/2
然后枚举两条边判断有边的三元环个数,复杂度是O(mm‾‾√)。有个链式hash不会打丫。
woc所谓链式hash就是用链表储存hash而防止重复ya
就像尼们平时打的链表储存图一样。
在这里可以放一下code:
#include<queue> #include<cstdio> using namespace std; const int N=100000+5; queue<long long>q; long long book ,to ,head ,nxt ,a ,cnt,tot,ans1,len,n,m,i,j; int main() { for(scanf("%lld%lld",&n,&m);m--;) { scanf("%lld%lld",&i,&j); if(i>j) swap(i,j);a[i]++;a[j]++; to[++len]=j;nxt[len]=head[i];head[i]=len; } for(tot=n*(n-1)*(n-2)/6,i=1;i<=n;i++) { cnt+=a[i]*(n-1-a[i]); for(j=head[i];j;j=nxt[j]) q.push(to[j]),book[to[j]]=1; for(;!q.empty();) for(j=head[q.front()],q.pop();j;j=nxt[j]) ans1+=book[to[j]]; for(j=head[i];j;j=nxt[j]) book[to[j]]=0; } printf("%lld %lld",ans1,tot-(cnt>>1)-ans1); return 0; }
蒟蒻要好好学学hash丫
T3
唯一一道会写的水题。第一眼还以为是个数论神题呢,后来发现筛出素数后枚举它们的基数次方就可以了欸(居然这么水不科学……)
然后刘汝佳给的素数线性筛果然不是很靠谱,只能过30分的数据……
正常的素数线性筛应该这么打:
long prime ={0},num=0; int vis ={1,1}; int is_prime() { for(int i=2;i<N;i++) { if(!used[i]) prime[num++]=i; for(int j=0;j<num&&i*prime[j]<N;j++) { used[i*prime[j]]=1; if(!(i%prime[j])) break; } } return 0; }
然后因为prime显然单调,所以当prime[i]只能乘一次的时候,后面的素数显然也最多只能来一次,二分高出最大的可乘素数。然后居然就可以过了……(本来是有个利用数学原理的神奇剪枝的,不过不需要呢)
总之,太弱怪谁……
相关文章推荐
- [考试] [NOIP模拟] [2017-11-01] 极其良(e)心的一次考试
- 软考-只是一次考试吗?
- 一次没有参加的考试
- ExtJS 4.2 树形结构请求后台数据无法展示子节点,而是没点击一次请求一次数据,无限请求加载所有的父节点元素
- 2013华为实习生上机考试试题(一)华为机试 请设计函数int getTest(char input[]) ,检测输入字符串中是否包含连续的或者离散的test,test只出现一次
- 检查Logic Java 课程最近一次考试。如果全部没有通过考试(60分及格),则认为本次考试偏难,计算该次考试平均分加5分。
- 一次循环实现无限级树状结构【转】
- 一次考试引发的血案---你能得几分?
- shell脚本示例,运行无限循环的shell脚本来检测拒绝列表上的用户是否登录到UNIX系统多于一次。
- 检查 Logic Java 课程最近一次考试。如果有成绩到达80分以上者,则显示分数排在前5名学员的学号和分数
- 思科考试一次免费重考的机会【已证实】
- 一次查询完成基于“父id"的无限分类
- 一次考试所引发的论战
- 沿着循环路线有N个加油站,其中i站的天然气量是[i]。你有一辆带有无限气罐的汽车,并且它的费用是从i站到我的下一站(i + 1).如果您可以绕电路行驶一次,则返回起始站索引
- 辅导“职称计算机应用能力考试”中的一次收获
- 一次使用SQL对考试结果进行统计的小经验
- 无限分级Repeater递归实现:读取一次数据库,使用LINQ2SQL技术,支持排序&显示隐藏
- 记一次考试(GT Practice #1)
- 统计logic java 课程最近一次考试学生应到人数,实到人数,缺考人数。
- 申请自考学士学位终于不再参加一年一次的全省申请学士学位外语统一考试了.