hdu 1979 剪枝暴搜
Fill the blanks
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 283 Accepted Submission(s): 115
And there is a blank line between the every two matrixs.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; bool flag[],mark;
int map[][]; void get_primes()
{
memset(flag,,sizeof(flag));
int i,j;flag[]=flag[]=;
for(i=;i<;i++)
{
for(j=i+i;j<;j+=i)
flag[j]=;
}
}
bool cjudge(int x)
{
int i,a=,b=;
for(i=;i<;i++) a=a*+map[x][i];
for(i=;i>=;i--) b=b*+map[x][i];
if(flag[a]&&flag[b]) return true;
return false;
}
bool rjudge(int x)
{
int i,a=,b=;
for(i=;i<;i++) a=a*+map[i][x];
for(i=;i>=;i--) b=b*+map[i][x];
if(flag[a]&&flag[b]) return true;
return false;
}
bool ljudge()
{
int i,a=,b=;
for(i=;i<=;i++) a=a*+map[i][-i];
for(i=;i>=;i--) b=b*+map[i][-i];
if(flag[a]&&flag[b]) return true;
return false;
}
bool rjudge()
{
int i,a=,b=;
for(i=;i<=;i++) a=a*+map[i][i];
for(i=;i>=;i--) b=b*+map[i][i];
if(flag[a]&&flag[b]) return true;
return false;
}
void Printf()
{
for(int i=;i<;i++)
{
for(int j=;j<;j++)
printf("%d",map[i][j]);
printf("\n");
}
} void dfs(int i,int j)
{
if(i==)
{
if(mark++) puts("");
Printf();
return ;
}
for(int k=;k<;k++)
{
if(k%== && (i==||i==||j==||j==)) continue;
map[i][j]=k;
if(j== && !cjudge(i)) continue;
if(i== && !rjudge(j)) continue;
if(i== && j== && !ljudge()) continue;
if(i== && j== && !rjudge()) continue;
dfs(i+(j+)/,(j+)%);
}
} int main()
{
get_primes();
mark=;
dfs(,);
return ;
}
hdu 1979 剪枝暴搜的更多相关文章
- 长沙理工大学第十二届ACM大赛L 选择困难症 (剪枝暴搜)
链接:https://ac.nowcoder.com/acm/contest/1/L 来源:牛客网 选择困难症 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 131072K,其他语言 ...
- hdu 4400 离散化+二分+BFS(暴搜剪枝还超时的时候可以借鉴一下)
Mines Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- HDU 4620 Fruit Ninja Extreme 暴搜
题目大意:题目就是描述的水果忍者. N表示以下共有 N种切水果的方式. M表示有M个水果需要你切. W表示两次连续连击之间最大的间隔时间. 然后下N行描述的是 N种切发 第一个数字C表示这种切法可以切 ...
- HDU 4284 Travel (Folyd预处理+dfs暴搜)
题意:给你一些N个点,M条边,走每条边要花费金钱,然后给出其中必须访问的点,在这些点可以打工,但是需要先拿到证书,只可以打一次,也可以选择不打工之直接经过它.一个人从1号点出发,给出初始金钱,问你能不 ...
- 紫书 习题7-14 UVa 307(暴搜+剪枝)
这道题一开始我想的是在排序之后只在头和尾往中间靠近来找木块, 然后就WA, 事实证明这种方法是错误的. 然后参考了别人的博客.发现别人是直接暴搜, 但是加了很多剪枝, 所以不会超时. 我也想过这个做法 ...
- hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
题意: 给你两个数n,k问你是否怎在这样一个序列: (1)这个序列有k个正整数,且不重复. (2)这k个数的和是n. (3)其中有k-1个数的和是一个平方数. ...
- hdu 5952 Counting Cliques 求图中指定大小的团的个数 暴搜
题目链接 题意 给定一个\(n个点,m条边\)的无向图,找出其中大小为\(s\)的完全图个数\((n\leq 100,m\leq 1000,s\leq 10)\). 思路 暴搜. 搜索的时候判断要加进 ...
- HDU - 6185 Covering(暴搜+递推+矩阵快速幂)
Covering Bob's school has a big playground, boys and girls always play games here after school. To p ...
- hdu4848 DFS 暴搜+ 强剪枝
题意: 给你一个图,然后问你从1出发遍历所有的点的距离和是多少,这里的距离和是每一个点到1的距离的总和,不是选择一条遍历所有点的路径的总长度,时间限制是 8000ms. 思路: ...
随机推荐
- MySQL中同时存在创建和更新时间戳字段解决方法浅析
MySQL中同时存在创建和更新时间戳字段解决方法浅析 明确我的MySQL版本.mysql> SELECT VERSION();+------------+| VERSION() |+------ ...
- 抓取oracle建表语句及获取建表ddl语句
抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产生表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):= '&2'; -- ...
- RAID阵列搭建
RAID0 2个或2个以上磁盘,称为条带卷,无容错,可提高读写效率,其中一个磁盘损坏,所有文件不可读磁盘大小尽量统一,或者以最小的空间为标准,可用空间=N*min RAID1 2个或2个磁盘以上,称为 ...
- JDBC操作数据库的详细步骤
1.注册驱动 告知JVM使用的是哪一个数据库的驱动 2.创建连接 使用JDBC中的类,完成对MySQL数据库的连接 3. 得到执行sql语句的Statement对象 通过连接对象获取对SQL语句的执行 ...
- 【Git版本控制】GitHub上fork项目和clone项目的区别
fork:在github页面,点击fork按钮,将别人的仓库复制一份到自己的仓库. clone:直接将github中的仓库克隆到自己本地电脑中 问题1:pull request的作用 比如在仓库的主人 ...
- k8s的高级调度方式
默认的scheduler的调度过程:1.预选策略:从所有节点当中选择基本符合选择条件的节点.2.优选函数:在众多符合基本条件的节点中使用优选函数,计算节点各自的得分,通过比较进行排序.3.从最高得分的 ...
- Python的ORM介绍
实现方法: SQLOject peewee Django's ORM SQLAlchemy
- Python3 pymsyql 连接读取数据
import pymysql conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='t ...
- loj2013 「SCOI2016」幸运数字
点分治+线性基 (为了这六个字窝调了一下午一晚上QAQ #include <iostream> #include <cstring> #include <cstdio&g ...
- apache php 多站点配置 重新整理
需要下载的东东:apache_2.0.59-win32-x86-no_ssl.msi (服务器软件,用来编译PHP的) php-5.1.5-Win32.zip (PHP的主文件) 第一步:1.安装 ...