code vs 3376 符号三角形
如下图是由14个“+”和14个“-”组成的符号三角形, 2个同号下面都是“+”,2个异号下面都是“-”
- + + - + + +
- + - - + +
- - + - +
+ - - -
- + +
- +
-
一个数n,表示符号三角形的第一行有n个符号
对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同(严禁打表!!!!!)
若不存在方案,输出-1
4
6
对于90%的数据,n<=24;
对于另外10%的数据,请注意特殊情况。
分类标签 Tags 点此展开
思路:写了个搜索,发现只能卡到70分,然后就用这个暴力打了个表,然后就过了。
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define MAXN 2500
- using namespace std;
- int n,sum,ans;
- int map[MAXN][MAXN];
- int judgenum(){
- int bns=,k;
- for(int i=;i<=n;i++){
- for(int j=;j<=n-i+;j++){
- if(map[i-][j]!=map[i-][j+]) map[i][j]=,bns++;
- else if(map[i-][j]==map[i-][j+]) map[i][j]=;
- }
- }
- for(int i=;i<=n;i++) if(map[][i]==) bns++;
- if(bns==sum-bns) return ;
- else return ;
- }
- void dfs(int now,int num1,int num2){
- if(now==n+){
- if(judgenum()) ans++;
- return ;
- }
- map[][now]=;dfs(now+,num1+,num2);map[][now]=-;
- map[][now]=;dfs(now+,num1,num2+);map[][now]=-;
- }
- int main(){
- scanf("%d",&n);
- for(int i=;i<=n;i++) sum+=i;
- if(sum%!=){ cout<<"-1";return ; }
- memset(map,-,sizeof(map));
- dfs(,,);
- cout<<ans;
- }
- /*
- - + + - + + +
- - + - - + +
- - - + - +
- + - - -
- - + +
- - +
- -
- */
70分暴力
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define MAXN 2500
- using namespace std;
- int n,sum,ans;
- int map[MAXN][MAXN];
- int anss[]={,-,-,,,-,-,,,-,-,,,-,-,,,-,-,,,-,-,,};
- int judgenum(){
- int bns=,k;
- for(int i=;i<=n;i++){
- for(int j=;j<=n-i+;j++){
- if(map[i-][j]!=map[i-][j+]) map[i][j]=,bns++;
- else if(map[i-][j]==map[i-][j+]) map[i][j]=;
- }
- }
- for(int i=;i<=n;i++) if(map[][i]==) bns++;
- if(bns==sum-bns) return ;
- else return ;
- }
- void dfs(int now){
- if(now==n+){
- if(judgenum()) ans++;
- return ;
- }
- map[][now]=;dfs(now+);map[][now]=-;
- map[][now]=;dfs(now+);map[][now]=-;
- }
- int main(){
- scanf("%d",&n);
- for(int i=;i<=n;i++) sum+=i;
- if(sum%!=){ cout<<"-1";return ; }
- cout<<anss[n];
- /*for(n=1;n<=24;n++){
- memset(map,-1,sizeof(map));
- dfs(1);if(ans==0){ cout<<"-1,";sum=0;continue; }
- cout<<ans<<",";
- ans=0;sum=0;
- }*/
- }
- /*
- - + + - + + +
- - + - - + +
- - - + - +
- + - - -
- - + +
- - +
- -
- */
code vs 3376 符号三角形的更多相关文章
- OpenJudge 2990:符号三角形 解析报告
2990:符号三角形 总时间限制: 1000ms 内存限制: 65536kB 描述 符号三角形的第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“ ...
- 符号三角形——F
F. 符号三角形 Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format: Java class name: 符号 ...
- 符号三角形(hdu 2510 搜索+打表)
符号三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 符号三角形_hdu_2510(深搜).java
http://acm.hdu.edu.cn/showproblem.php?pid=2510 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- hdu 2510 符号三角形 (DFS+打表)
符号三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 【a502】符号三角形问题
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 在一般情况下,符号三角形的第一行有n个符号.按照2个同号的下面是"+"号,2个异号的 ...
- 【HDOJ】2510 符号三角形
暴力打表. #include <cstdio> ]={,,,,,,,,,,,,,,,,,,,,,,,,}; int main() { while (scanf("%d" ...
- HDU 2510 - 符号三角形
DFS后打表 #include <iostream> using namespace std; ,,,,,,,,,,,,,,,,,,,,,,,,}; int main() { int n; ...
- 【CImg】三角形绘制算法实现
这周的CV基础练习是简单的图形绘制:比如说矩形.三角形和圆心什么的.会发现其实矩形和圆形的实现思路都很直白,矩形只需要确认两个对角坐标就可以了,圆心只需要确认圆心和半径,接着就是简单的遍历各个像素点判 ...
随机推荐
- 苹果树(线段树+Dfs序)
1228 苹果树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在卡卡的房子外面,有一棵苹果树.每年的春天,树上总 ...
- Linex系统 配置php服务器
此文是可以参考 楼主也不是系统管理员只是迫不得已所以自己才找的 大家可以参考 .... ..... 安装apache 安装mysql 安装PHP 测试服务器 php -v 查询php的版本 就这些了 ...
- [Apple开发者帐户帮助]七、注册设备(2)注册多个设备
如果您有许多测试设备,则可以创建包含设备名称和设备ID的文件,并将整个文件上载到开发人员帐户.您的开发人员帐户支持以下两种文件格式:具有.deviceids文件扩展名和纯文本文件的属性列表文件.您选择 ...
- vscode----vue中HTML代码tab键自动补全
1.在vscode中插件下载并重新加载HTML Snippets 2.settings.json中配置files.associations对象. 找到setting.json文件:文件 --> ...
- Scala-基础-变量与常量
import junit.framework.TestCase import org.junit.Test //变量 //var 代表变量 //val 代表常量 //关键字 class,extends ...
- 【RTTI】java Class类详解
RTTI (Run-Time Type Information)运行时类信息 Java的Class类是java反射机制的基础,通过Class类我们可以获得关于一个类的相关信息,下面我们来了解一下有关j ...
- 一,前端---关于微信小程序遇到的wx.request({})问题
域名请求错误问题 当我们在编写小程序,要发送请求时,wx.request({})时或许会遇到如下的问题: 一:这是因为微信小程序的开发中,域名只能是https方式请求,所以我们必须在小程序微信公众平台 ...
- Lazarus Reading XML- with TXMLDocument and TDOMNode
这里读取'HistoryPath' ,'TracePath' 元素下的‘value’属性使用的是 var xmlCfg: TXMLDocument; .... function ReadXMLCFG: ...
- Python 之列表操作
# len(list)列表元素个数 # max(list)返回列表元素最大值 # min(list)返回列表元素最小值 # list(seq)将元组转换为列表 # list.append(obj)在列 ...
- C语言数据结构链栈(创建、入栈、出栈、取栈顶元素、遍历链栈中的元素)
/**创建链栈*创建一个top指针代表head指针*采用链式存储结构*采用头插法创建链表*操作 创建 出栈 入栈 取栈顶元素*创建数据域的结构体*创建数据域的名称指针*使用随机函数对数据域的编号进行赋 ...