NOIP 考前 暴力练习
BZOJ 1028
暴力枚举听的那张牌,和那个多余的两张牌,其余的mod3后模拟就可以了
#include <cstdio>
const int Maxn=;
int n,m,a[Maxn],b[Maxn],cnt,Ans[Maxn],x;
bool Check()
{
for (int i=;i<=n;i++)
if (a[i]>=)
{
for (int j=;j<=n+;j++) b[j]=a[j];
b[i]-=; bool flag=true;
for (int j=;j<=n;j++)
if (b[j])
{
if (b[j]<) {flag=false; break;}
int t=b[j]%;
b[j+]-=t,b[j+]-=t;
}
if (!flag || b[n+]< || b[n+]<) continue;
return true;
}
return false;
} int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=*m+;i++) scanf("%d",&x),a[x]++;
for (int i=;i<=n;i++)
{
a[i]++;
if (Check()) Ans[++cnt]=i;
a[i]--;
}
if (cnt==) {puts("NO"); return ;}
for (int i=;i<cnt;i++) printf("%d ",Ans[i]); printf("%d\n",Ans[cnt]);
return ;
}
BZOJ 1028
BZOJ 1860
直接Dfs枚举方案数,然后用Hash判重就可以了,类似于斗地主
#include<cstdio>
#include<set>
#define LL long long
using namespace std;
const LL Mod=;
set<LL>S;
LL KASE,Bin[],a[],Sum,mul=131ll;
inline bool Dfs(LL k,bool two,LL Sta)
{
if (S.find(Sta)!=S.end()) return ;
S.insert(Sta);
while (!a[k]&&k<=) k++;
if (k==) return two;
if (a[k]&&a[k+]&&a[k+]&&k<=)
{
a[k]--;a[k+]--;a[k+]--;
if (Dfs(k,two,(Sta-Bin[k]-Bin[k+]-Bin[k+]+*Mod)%Mod)) return true;
a[k]++;a[k+]++;a[k+]++;
}
if (a[k]>=)
{
a[k]-=;
if (Dfs(k,two,(Sta-Bin[k]*+*Mod)%Mod)) return true;
a[k]+=;
}
if (a[k]>=)
{
a[k]-=;
if (Dfs(k,two,(Sta-Bin[k]*+*Mod)%Mod)) return true;
a[k]+=;
}
if (a[k]>=&&!two)
{
a[k]-=;
if (Dfs(k,,(Sta-Bin[k]*-Bin[]+*Mod)%Mod)) return true;
a[k]+=;
}
return false;
}
int main()
{
Bin[]=; for (int i=;i<=;i++) Bin[i]=(Bin[i-]*mul)%Mod;
scanf("%d",&KASE);
for (int Kase=;Kase<=KASE;Kase++)
{
Sum=;
for (int i=;i<=;i++) scanf("%lld",&a[i]),Sum=(Sum+Bin[i]*a[i])%Mod;
S.clear();
if (Dfs(,,Sum)) puts("Yes"); else puts("No");
}
return ;
}
BZOJ 1860
POJ 1077 BFS+康拓展开
#include <cstdio>
int Fac[];
struct Data
{
int a[];
int Father,Pos,Direct;
}Q[],u;
bool vis[];
int Ans[];
inline int Cantor()
{
int Ret=;
for (int i=;i<;i++)
{
int Tmp=;
for (int j=i+;j<;j++)
if (u.a[j]<u.a[i]) Tmp++;
Ret+=Tmp*Fac[-i-];
}
return Ret;
}
int main()
{
Fac[]=; for (int i=;i<=;i++) Fac[i]=Fac[i-]*i;
for (int i=;i<;i++)
{
char ch=getchar();
while (ch==' ') ch=getchar();
if (ch=='x') Q[].a[i]=,Q[].Pos=i; else Q[].a[i]=ch-'';
}
u=Q[];
int l=,r=;
while (l<=r)
{
u=Q[l]; int Tmp;
int Statue=Cantor();
// printf("%d\n",Statue);
if (Statue==)
{
int k=l,tot=;
while (k!=)
{
Ans[++tot]=Q[k].Direct;
k=Q[k].Father;
}
for (int i=tot;i>=;i--)
{
if (Ans[i]==) putchar('u');
if (Ans[i]==) putchar('l');
if (Ans[i]==) putchar('r');
if (Ans[i]==) putchar('d');
}
return ;
}
vis[Statue]=true;
int k=u.Pos;
if (k>=)
{
Tmp=u.a[k]; u.a[k]=u.a[k-]; u.a[k-]=Tmp;
Statue=Cantor();
if (vis[Statue]==)
{
r++;
Q[r]=u;
Q[r].Pos=k-;
Q[r].Father=l;
Q[r].Direct=;
vis[Statue]=true;
}
Tmp=u.a[k]; u.a[k]=u.a[k-]; u.a[k-]=Tmp;
}
if (k%!=)
{
Tmp=u.a[k]; u.a[k]=u.a[k-]; u.a[k-]=Tmp;
Statue=Cantor();
if (vis[Statue]==)
{
r++;
Q[r]=u;
Q[r].Pos=k-;
Q[r].Father=l;
Q[r].Direct=;
vis[Statue]=true;
}
Tmp=u.a[k]; u.a[k]=u.a[k-]; u.a[k-]=Tmp;
}
if (k%!=)
{
Tmp=u.a[k]; u.a[k]=u.a[k+]; u.a[k+]=Tmp;
Statue=Cantor();
if (vis[Statue]==)
{
r++;
Q[r]=u;
Q[r].Pos=k+;
Q[r].Father=l;
Q[r].Direct=;
vis[Statue]=true;
}
Tmp=u.a[k]; u.a[k]=u.a[k+]; u.a[k+]=Tmp;
}
if (k<)
{
Tmp=u.a[k]; u.a[k]=u.a[k+]; u.a[k+]=Tmp;
Statue=Cantor();
if (vis[Statue]==)
{
r++;
Q[r]=u;
Q[r].Pos=k+;
Q[r].Father=l;
Q[r].Direct=;
vis[Statue]=true;
}
Tmp=u.a[k]; u.a[k]=u.a[k+]; u.a[k+]=Tmp;
}
l++;
}
puts("unsolvable");
return ;
}
POJ 1070
NOIP 考前 暴力练习的更多相关文章
- NOIP考纲总结+NOIP考前经验谈
首先来一张图,很直观(截止到2012年数据) 下面是收集的一些,我改了一下 红色加粗表示特别重要,必须掌握 绿色加粗表示最好掌握,可能性不是很大,但是某些可以提高程序效率 高精度 a.加法 b.减法 ...
- NOIP考前划水
NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...
- noip考前注意事项
明天就要离开学校,后天的现在Day1已经考完啦,临近考试了紧不紧张呢(不紧张才怪),那么考前我们应该注意点什么呢? 1.带好自己的证件,带好自己的证件,带好自己的证件,这很重要. 2.试机的时候一定要 ...
- NOIP 考前研究
NOIP 2017 试题研究 D1T1 小凯的疑惑 (45 min) 看到题面,大概是推数学公式. 先打暴力表,观察 \(a,b\) 与 \(n\) 的关系.猜想 \(a×b−a−b\). 引理:对于 ...
- noip考前模板大整理
//归并排序求逆序对 #include<bits/stdc++.h> #define ll long long using namespace std; ]; ll ans; ]; voi ...
- NOIP考前总结
最近出的锅比较多啊,我来总结一下吧 $1.$小心文件名/文件输入输出!别打错了!结束前十分钟一定要检查! $2.$开数组前要算好内存,不要开一个$1e8$或$1e4*1e4$这样的大数组,直接GG $ ...
- NOIP考前知识点整理
前言:距离NOIP还有不到一百天(虽然NOIP没了),为了整理一下所学的内容,才有了这篇博文.本文内容无特殊说明全部来自于博主的博客,代码也都是新敲的,努力在个人的码风基础上做到尽量简洁,求资瓷. 一 ...
- 【NOIP考前模拟赛】纯数学方法推导——旅行者问题
一.写在前面 这题似乎是一道原创题目(不是博主原创),所以并不能在任何OJ上评测,博主在网盘上上传了数据(网盘地址:http://pan.baidu.com/s/1mibdMXi),诸位看官需者自取. ...
- NOIP 考前 队列复习
BZOJ 1127 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
随机推荐
- Mina的ProtocolEncoderOutput之坑
这个问题是之前测试上万个连接的pingpong发现的,调了很久,但当时急着做其他事,就没有详细记录下来,现在回想起来也有点记不清具体哪儿了. 表现是在测试上万个连接的pingpong时会出现服务器挂起 ...
- json转实体类
VS快速生成JSON数据格式对应的实体 Json生成类在线生成工具 http://tool.sufeinet.com/Creater/JsonClassGenerator.aspx http://js ...
- java replace和replaceAll
replace和replaceAll是JAVA中常用的替换字符的方法 public String replace(char oldChar, char newChar) 在字符串中用n ...
- iOS开发中关于像素的几个概念
DPI与PPI DPI(Dots Per Inch)是印刷行业中用来度量空间点密度用的,这个值是打印机每英寸可以喷的墨汁点数. 计算机显示设备从打印机中借鉴了DPI的概念,由于计算机显示设备中的原子单 ...
- jmeter 内存溢出解决方法
执行“评论新鲜事”200并发就内存溢出 解决方法: [caozijuan@test09 bin]$ vi jmeter JVM_ARGS="-Xms1024m -Xmx4096m" ...
- Java日志规范
前言 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是如何在Jav ...
- sql基础语句(技巧)
1.压缩数据库 dbcc shrinkdatabase(dbname) 2.转移数据库给新用户已存在用户权限 exec sp_change_users_login'update_one','newga ...
- android 混淆导致友盟反馈出错
最近混淆应用时出现了一个错误: 打包编译没问题,但程序运行之后,点击友盟的反馈就会导致程序报错: E/AndroidRuntime(7669): java.lang.RuntimeException ...
- C# ADO.NET 连接Sybase 数据库
using Sybase.Data.AseClient;//反编译修改后的DLL public class SybaseHelper { public AseConnection con; publi ...
- storm启动过程之源码分析
TopologyMaster: 处理拓扑的一些基本信息和工作,比如更新心跳信息,拓扑指标信息更新等 NimbusServer: ** * * NimbusServer work flow: 1. ...