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应用程序的安装方式与原理
android应用程序的安装方式与原理 四种安装方式: 1.系统应用安装――开机时完成,没有安装界面 2.网络下载应用安装――通过market应用完成,没有安装界面 3.ADB工具安装――没有安装界面 ...
- appium 启动失败解决方案
本机下载了:AppiumForWindows,启动Appium.exe 的时候,立即提示:应用程序已停止运行!! 本机环境: WIN 7 64 位,后来查了资料才知道Appium 要求安装.net f ...
- JavaScript对象进阶
要了解JavaScript对象,我们可以从对象创建.属性操作.对象方法这几个方面入手.概括起来,包括以下几模块: 1.创建对象 1.1 对象直接量 对象直接量是创建对象最简单的方式,由若干名/值对组成 ...
- 使用Npoi向Excel中插入图片
先把数据库中的数据都导入到Excel表格中,把图片地址的路径全部转成绝对路径. 使用Npoi读取刚导出的Excle表格,把图片那个单元格的图片路径读出来,然后用文件流读取图片,然后通过Npoi把图片放 ...
- Matlab设置网格线密度(坐标精度)
1.不精确 set(gca,'XMinorTick','on') 这样的话知识x轴显示了细的密度,网格线并没有变. 2.精确 set(gca,'xtick',-1:0.1:1); set(gca,'y ...
- NF3 里面的z cull reverse reload
nf3 siggraph2011的 分享 里面有谈对csm的优化. 1.mask white red 2. HI Z 这俩我都懂 3.reverse depth buffer这实在不明白, 为什么会有 ...
- [工作积累] Android system dialog with native callback
JNI: invoke java dialog with native callback: store native function address in java, and invoke nati ...
- JAVA算法系列 快速排序
java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 ...
- 理解Linux系统负荷[转]
一.查看系统负荷 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在苹果公司的Mac电脑上也适用.) 二.一个类比 我们不妨把这个CPU想象成一座大桥, ...
- Ruby Profiler 详解之 stackprof
简介 stackprof 是基于采样的一个调优工具,采样有什么好处呢?好处就是你可以线上使用,按照内置的算法抓取一部分数据,只影响一小部分性能.它会产生一系列的 dump 文件,然后你在线下分析这些文 ...