2017/10/22(vjudge--BJFU周赛第七周)
来源:互联网 发布:应用程序软件下载 编辑:程序博客网 时间:2024/05/22 17:27
https://vjudge.net/contest/193373#overview
A
首先这个题是&运算,然后自然想到是位运算,然后还有一个点,就是如果一个连续的区间都是1,那么它的任何一个自区间都是符合条件的,那么只要计算出它的子区间即可,这样就只需要遍历一遍。一个区间的子区间有n*(n+1)
#include<iostream>using namespace std;int num[100005];bool vis[100005][23];int main(){ int t; scanf("%d",&t); int bound[23]; int i,j; int c=1; for(i=1;i<=22;i++) { bound[i]=c; c=c<<1; } while(t--) { int n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&num[i]); for(i=0;i<n;i++) { int cnt=num[i]; for(j=1;j<=22;j++) { vis[i][j]=cnt&1; cnt=cnt>>1; } } long long ans=0; for(i=1;i<=22;i++) { int len=0; for(j=0;j<n;j++) { if(vis[j][i]) len++; else { ans+=(len*(len+1))/2*bound[i]; len=0; } } ans+=(len*(len+1))/2*bound[i]; //这段代码可以说是非常巧妙了 } printf("%lld\n",ans); } return 0;}
H
H题其实是比较明显的dp题,对于每一个盒子都有跳右一格或者是跳同一个颜色,啊呸,不对,是对于每一个盒子都有从左边一个跳过来或者是从左边最近的同一个颜色的跳过来,其实这真的是两种不同的思想,这大概就是dp吧,想的是“终止”。
C
lowband
两种情况,一种是两个的和比mod大,另一种是两个的和比mod小
G
dp或者dfs
I
①判断不合法的情况②判断怎么填
H
dp题
D
全模拟
阅读全文
0 0
- 2017/10/22(vjudge--BJFU周赛第七周)
- 2017/10/14周测(vjudge——BJFU周赛_6th_1st)
- 2017/10/15周测(vjudge——BJFU周赛_6th_2nd)
- Vjudge
- 周报(第七周)
- bjfu 1087 (积性函数)
- 八皇后问题(bjfu 1275)
- Vjudge 2016-5-10 math test
- Vjudge Oil Deposits 油田问题(dfs)
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 第七周
- 在eclipse配置Tomcat时遇到的小问题
- 在MacOS系统安装homebrew(2017年末版,持续更新)
- 什么是图灵测试
- 矩阵基础(一)
- Unity3D 一种开放世界物件序列化方案
- 2017/10/22(vjudge--BJFU周赛第七周)
- 7张图全面了解java
- 如何模糊搜索树结构(包含上级)
- 服务器向客户端返回的常见状态码和提示信息
- cpu的主频、外频和倍频
- 互斥锁
- Fibonacci扩展(奶牛问题)
- IntelliJ Idea 2017 免费激活方法
- AttributeError: 'dict' object has no attribute 'iteritems'