USACO Section 2.2: Party Lamps
这题有个小技巧, 按一个键两次等于没按,所以如果depsum > 16的话其实不用做深搜到depsum次,而只要16次就可以了。
/*
ID: yingzho1
LANG: C++
TASK: lamps
*/
#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <algorithm>
#include <stdio.h>
#include <queue>
#include <cstring>
using namespace std;
ifstream fin("lamps.in");
ofstream fout("lamps.out");
int N, depsum;
bool check(string s, vector<int> &on, vector<int> &off) {
; i < on.size(); i++) {
') return false;
}
; i < off.size(); i++) {
') return false;
}
return s.size();
}
void dfs(set<string> &res, int c1, int c2, int c3, int c4, string s, vector<int> &on, vector<int> &off, int dep) {
if (check(s, on, off)) {
== ) {
res.insert(s);
//return;
}
}
|| dep > depsum) return;
string pre = s;
) {
dfs(res, c1+, c2, c3, c4, s, on, off, dep+);
; i < s.size(); i++) {
';
';
}
dfs(res, c1+, c2, c3, c4, s, on, off, dep+);
}
s = pre;
) {
dfs(res, c1, c2+, c3, c4, s, on, off, dep+);
; i < s.size(); i++) {
== ) {
';
';
}
}
dfs(res, c1, c2+, c3, c4, s, on, off, dep+);
}
s = pre;
) {
dfs(res, c1, c2, c3+, c4, s, on, off, dep+);
; i < s.size(); i++) {
== ) {
';
';
}
}
dfs(res, c1, c2, c3+, c4, s, on, off, dep+);
}
s = pre;
) {
dfs(res, c1, c2, c3, c4+, s, on, off, dep+);
; i < s.size(); i++) {
== ) {
';
';
}
}
dfs(res, c1, c2, c3, c4+, s, on, off, dep+);
}
s = pre;
}
int main()
{
fin >> N >> depsum;
');
int n;
vector<int> on, off;
//cout << N << " " << depsum << endl;
) on.push_back(n-);
) off.push_back(n-);
//for (int i = 0; i < on.size(); i++) cout << on[i] << endl;
//for (int i = 0; i < off.size(); i++) cout << off[i] << endl;
set<string> res;
dfs(res, , , , , s, on, off, );
vector<string> ret;
for (set<string>::iterator it = res.begin(); it != res.end(); it++) ret.push_back(*it);
sort(ret.begin(), ret.end());
) {
fout << "IMPOSSIBLE" << endl;
;
}
; i < ret.size(); i++) {
fout << ret[i] << endl;
}
;
}
USACO Section 2.2: Party Lamps的更多相关文章
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- 【USACO 2.2】Party Lamps
四种开关,n盏灯,1:改变所有灯状态,2:改变奇数灯状态,3:改变偶数灯状态,4:改变3k+1灯状态 给你按开关的总次数c和部分灯限制条件(开或关),一开始都是开着的.($c \leq 10000,n ...
- USACO Section 3.3: Riding the Fences
典型的找欧拉路径的题.先贴下USACO上找欧拉路径的法子: Pick a starting node and recurse on that node. At each step: If the no ...
- USACO Section 3.3 Camlot(BFS)
BFS.先算出棋盘上每个点到各个点knight需要的步数:然后枚举所有点,其中再枚举king是自己到的还是knight带它去的(假如是knight带它的,枚举king周围的2格(网上都这么说,似乎是个 ...
- [IOI1996] USACO Section 5.3 Network of Schools(强连通分量)
nocow上的题解很好. http://www.nocow.cn/index.php/USACO/schlnet 如何求强连通分量呢?对于此题,可以直接先用floyd,然后再判断. --------- ...
- USACO Section 5.3 Big Barn(dp)
USACO前面好像有类似的题目..dp(i,j)=min(dp(i+1,j),dp(i+1,j+1),dp(i,j+1))+1 (坐标(i,j)处无tree;有tree自然dp(i,j)=0) .d ...
- USACO Section 1.3 Prime Cryptarithm 解题报告
题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- parti ...
- USACO Section 1.1 Your Ride Is Here 解题报告
题目 问题描述 将字符串转变为数字,字母A对应的值为1,依次对应,字母Z对应的值为26.现在有一个字符串,将其中的每个字符转变为数字之后进行累乘,最终的结果对47求余数. 题目给你两个字符串,其中的字 ...
- USACO Section 1.1-1 Your Ride Is Here
USACO 1.1-1 Your Ride Is Here 你的飞碟在这儿 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支 ...
随机推荐
- android ViewPaper高度自适应
tv_btn_web.measure(0, 0);//计算所需的真实宽高 LayoutParams params=vp_btn_menu.getLayoutParams(); params.heigh ...
- android开发 图片合成
private static Bitmap compositeImages(Bitmap srcBitmap,Bitmap dstBitmap){ Bitmap bmp = null; //下面这个B ...
- android 怎么动态设置button 的style
网上找了很多,还是没有直接的解决办法,button没有setstyle这个方法.因此我的解决办法如下: 直接动态设置各个属性 Button themeBtn = new Button(this); t ...
- HDU 5592 ZYB's Premutation
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5592 题意: http://bestcoder.hdu.edu.cn/contests/contes ...
- Linux进程栈和线程栈
参考资料: http://blog.csdn.net/xhhjin/article/details/7579145 总结: 1.进程的栈大小是在进程执行的时刻才能指定的,即不是在编译的时候决定 ...
- BZOJ3503: [Cqoi2014]和谐矩阵
题解: 如果第一行的数知道了,我们就可以推出其他行的数. 那么如何判断第一行的数的一种填法是否合法呢?很简单,我们递推出m+1行的数,当且仅当这一行都是0时满足题意. 那么,我们就有了一种想法. 直接 ...
- NYOJ-102 次方求模 AC 分类: NYOJ 2014-02-06 18:53 184人阅读 评论(0) 收藏
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=102 //a^b mod c=(a mod c)^b mod c很容易设计出一个基于二分的递归 ...
- OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程(转)
OpenSSL 1.0.0生成p12.jks.crt等格式证书的命令个过程 此生成的证书可用于浏览器.java.tomcat.c++等.在此备忘! 1.创建根证私钥命令:openssl g ...
- apple wwdc resource
1. every wwdc topic list http://asciiwwdc.com 2. wwdc video直接查看apple develop-> video 3. wwdc open ...
- JavaScript之常用方法讲解
1.indexOf() 定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(searchvalue,frominde ...