NEERC2012

A - Addictive Bubbles

题目描述:有一个\(n \times m\)的棋盘,还有不同颜色的棋子若干个,每次可以消去一个同种颜色的联通块,得到的分数为联通块中的棋子数的平方,消掉后高处的棋子会落到下面。设计一个摆法,使得在最优策略下能得到最多的分数。

solution

同种颜色的棋子摆在一起即可。

时间复杂度:\(O(nm)\)

B - Blind Problem Solving

题目描述:有\(n\)个物品,一个容量为\(c\)的背包,每个物品的大小为\(w_i\),找出一种方案使得在不超过容量的前提下装的物品的总大小最大。但问题是\(w_i\)是未知的,系统中初始有一个选择方案\(A(bitset)\),每次先将\(B=A\),然后随机改变\(B\)的一个位置,然后将\(B\)这种方案对应的物品总大小告诉你,你要选择是否接受这个方案,如果接受,则令\(A=B\),否则舍去,当\(B\)为最优解时停下。

solution

首先花费一定的步数使得\(A\)为全选(期望步数\(nlnn\)),接着花费一定步数使得\(A=0\)(期望步数为\(nlnn\)),同时记下每一个物品的大小,然后做一次\(dp\),算出最优方案,然后当每次询问增加的大小恰好是需要的大小之一时接受,否则舍去,当为最优方案时停下。

时间复杂度:\(O(2^n)\)

C - Caravan Robbers

题目描述:给出\(n\)个区间,现在要求一个最大的长度\(k\),使得将每个区间变成一个长度为\(k\)的子区间后,所有区间不相交,求\(k\).

solution

这道题的问题在于答案是个分数,所以要先小数二分出答案,然后求出最接近这个答案的分数,而答案的分母不会超过\(10^6\)。

时间复杂度:\(O(nlogn)\)

D - Disjoint Regular Expressions

题目描述:给出两个正则表达式,问是否存在一个字符串满足这两个表达式,存在则输出字符串。

solution

不会。

E - Exact Measurement

题目描述:有\(n\)个箱子,每个箱子里有\(q_i\)个大小为\(10^{k_i}\)的砝码,输出一种使用箱子数最少的方案,使得使用的箱子中的砝码能表示\(x\)(只能相加)。

solution

按\(k_i\)给箱子分类,先满足\(x\)的低位,因为高位可以用低位的填,但低位不能用高位的填。然后贪心,先打开砝码比较多的箱子,记住剩余的砝码(打开了箱子,但没有用到的砝码),到下一位时首先使用之前剩余的砝码,再打开新的箱子。

时间复杂度:\(O(nlogn)\)

F - Folding Snake Cube

不懂。

G - Great Deceiver

题目描述:给出\(n, k\),问\(1\)~\(n\)有多少个数在\(k\)进制和\(-k\)进制下相同。

solution

奇次幂只能是\(0\),然后数位\(dp\)

时间复杂度:\(O(64)\)

H - Hyperdrome

题目描述:给定一个字符串,问有多少个子串重排后是一个回文串。

solution

重排后为回文串,也就是最多有一种字符的出现次数为奇数。如果只记住每种字符出现的奇偶性,求前缀,则当子串的右端为\(i\)时,需要求出有多少个左端\(j\)的前缀奇偶性与\(i\)最多相差一个位,这个可以\(hash\)处理。

时间复杂度:\(O(n)\)

I - Identification of Protein

J - Jumping Around

题目描述:在坐标轴上从\(0\)出发,每次向左或向右移动\(1,2,3\)个单位,给出移动\(1,2,3\)个单位的次数分别为\(a, b, c\),求出一种方案使得\(0\)~\(n-1(n-1=a+b+c)\)每个点都经过一次。

solution

首先从前往后用完所有的\(c\),然后连接\(1,2\),按\(c\)对\(3\)取余的情况决定最后的收尾,然后连接\(n-2, n-1\),从后往前用完所有\(b\),然后中间的空缺用\(a\)填。

时间复杂度:\(O(n)\)

#include <bits/stdc++.h>
using namespace std; const int maxn=(2e4)+100; int a, b, c, n;
int f[maxn][10]; void add(int x, int y)
{
f[x][++f[x][0]]=y;
f[y][++f[y][0]]=x;
}
void solve()
{
n=a+b+c+1;
for (int i=0; i<n; ++i) f[i][0]=0; for (int i=0; i<c; ++i) add(i, i+3);
add(1, 2);
add(n-2, n-1); if ((c%3) & 1)
{
add(c, c+2);
add(c+1, c+3);
b-=2;
c+=3;
}
else
{
add(c, c+1);
c+=2;
} for (int i=0; i<b; ++i) add(n-1-i, n-3-i);
for (int i=c; i<n-b-2; ++i) add(i, i+1);
for (int i=0, cur=0, pv=-1; i<n; ++i)
{
printf("%d ", cur);
int tmp=cur;
if (f[cur][1]!=pv) cur=f[cur][1];
else cur=f[cur][2];
pv=tmp;
}
puts("");
}
int main()
{
freopen("jumping.in", "r", stdin);
freopen("jumping.out", "w", stdout);
int casesum;
scanf("%d", &casesum);
while (casesum--)
{
scanf("%d%d%d", &a, &b, &c);
solve();
}
return 0;
}

K - Kingdom Reunion

L - Labyrinth of the Minotaur

题目描述:给定一个地图,将其中一块正方形空地变成障碍,使得左上角与右下角不连通,求正方形边长最小值。

solution

听别人讲方法大概是枚举正方形左上角,则这个正方形必须是最大的,然后判断是否存在一条障碍路径将左上角与右下角分开。具体实现不太清楚。

NEERC2012的更多相关文章

  1. BZOJ3808 : Neerc2012 Labyrinth of the Minotaur

    左上角和右下角不四连通等价于左下角和右上角八连通 枚举正方形的左上角,先二分出最大的边长,使得里面不含障碍物 然后再二分出最小的边长,使得两部分连通,用前缀和判断 这题WA了好久…一直对拍都没问题…于 ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. 洛谷P3656 展翅翱翔之时 (はばたきのとき)(洛谷2017.3月赛round1 t4)

    题目背景 船が往くよミライへ旅立とう 船只启航 朝未来展开旅途 青い空笑ってる(なにがしたい?) 湛蓝天空露出微笑(想做些什么?) ヒカリになろうミライを照らしたい 化作光芒吧 想就此照亮未来 輝きは ...

  2. 【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)

    欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径 遇到的问题: 1.项目之前做过一次下载,但是是使用了本地文件模板.用输入流读取文件模板,插入数据, ...

  3. Keywords Search HDU - 2222(ac自动机板题。。)

    求一个字符串上有多少个匹配的单词 看着卿学姐的板子写的 指针形式: #include <iostream> #include <cstdio> #include <sst ...

  4. 【BZOJ1014】火星人(Splay,哈希)

    [BZOJ1014]火星人(Splay,哈希) 题面 BZOJ 题解 要动态维护这个串,一脸的平衡树. 那么用\(Splay\)维护这个哈希值就好了. 每次计算答案的时候二分+Splay计算区间哈希值 ...

  5. 洛谷 P1013 进制位 【搜索 + 进制运算】

    题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E KL KK E E ...

  6. Web服务器进程连接数和请求连接数

    1.查看Web服务器进程连接数: netstat -antp | grep 80 | grep ESTABLISHED -c 2.查看Web服务器的并发请求数及其TCP连接状态: netstat -n ...

  7. Codeforces 585E. Present for Vitalik the Philatelist(容斥)

    好题!学习了好多 写法①: 先求出gcd不为1的集合的数量,显然我们可以从大到小枚举计算每种gcd的方案(其实也是容斥),或者可以直接枚举gcd然后容斥(比如最大值是6就用2^cnt[2]-1+3^c ...

  8. 51nod1967 路径定向(欧拉回路+结论题)

    看到入度等于出度想到欧拉回路. 我们把边都变成无向边,有一个结论是偶数度的点都可以变成出入度相等的点,而奇数点的不行,感性理解分类讨论一下就知道是对的. 还有一个更好理解的结论是变成无向边后奇数点的个 ...

  9. SVN Server 500 NotLicensed 错误的解决方法

    SVN Server 500 NotLicensed 错误的HTML页面显示 Not licensed The server encountered an internal error or misc ...

  10. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...