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 ...
随机推荐
- div模拟table,可实现左右高度同增长(html布局)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- FileFilter 遍历某个目录下文件名含有某个字符的文件
由于IIS版本的升级,造成了文件名中含有“+”的特殊字符的文件(多数是图片)在网页中不能被访问,于是必须查找当前目录下含有多少这样的文件,从而制定最佳的解决方案. 废话少说,直接上核心代码: publ ...
- canvas动画
1.动画主要是requestAnimationFrame方法,现在我们来一步步实现一个在画布内滚动的实例. html代码: <canvas id="canvas" width ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- jenkins安装配置-白痴教程
1. Maven安装 下载maven安装包,放置在usr/maven目录下:apache-maven-3.2.5-bin.tar.gz tar zxvf apache-maven-3.2.5-bin. ...
- ubuntu - 中文
首先要从Ubuntu语言设置那里,把中文语言包安装上 打开/etc/environment 在下面添加如下两行 LANG="zh_CN.UTF-8″ LANGUAGE="zh_CN ...
- 以软件周期C开发周期说明不同测试的使用情况
我们所使用的测试方法有以下几种 功能测试 单元测试(使用场景:在编码阶段,每完成一段相对完整的代码块时,单元测试几乎贯穿整个编码过程) 黑盒测试(使用场景:在编码阶段,没完成一各相对独立的模块时,例如 ...
- HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)
思路:先枚举 a*bas +b = n 求出 bas 在sqrt(n)到n的 (bas>a&&bas>b) 再枚举 a*bas*bas+b*bas+c =n 求出 ...
- PHPCMS后台登陆路径修改方法(V9版)
转自:http://hi.baidu.com/geek_cheng/item/b903ebe7b4ac3af9e0a5d4aa?qq-pf-to=pcqq.c2c 最新发布的PHPCMS V9由于采用 ...
- NOIP 2015 游记
本来和zly和wxh约好了 高三一起再来玩一次复赛,结果最终只有我一个人来了说...貌似是年段主任不让去...总算见识了比我们学校的YSD更爱管闲事的年段主任. 今年比赛竟然在衢州二中,学校不大,但感 ...