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基础练习是简单的图形绘制:比如说矩形.三角形和圆心什么的.会发现其实矩形和圆形的实现思路都很直白,矩形只需要确认两个对角坐标就可以了,圆心只需要确认圆心和半径,接着就是简单的遍历各个像素点判 ...
随机推荐
- Git文件不显示图标/标识
初次使用Git服务功能,做了很多探路事情,记录下刚刚遇到的问题 情况:安装了Git应用程序,或者也安装了TortoiseGit-1.8.16.0-64bit(类似SVN工具)后,上传下载文件没有问题, ...
- GIT分支的一些开发心得
从本地的master分支创建新的分支 $ git checkout -b dev Switched to a new branch 'dev' 上面那条命令可以分为两步 $ git branch de ...
- MyEclipse找不到install new software
Window->Preferences->Capabilities-> classic update(勾选即可) 勾选后会出现software updates,下面按照help-&g ...
- 命令框中oracle dmp文件的导入和导出(仅做个人备忘)
1.dmp文件导出 (全部)exp 用户名/密码 rows=y indexes=n compress=n buffer=65536 feedback=100000 file=F:\test.dmp ...
- [hihocoder][Offer收割]编程练习赛62
方向 #pragma comment(linker, "/STACK:102400000,102400000") #ifndef ONLINE_JUDGE #include &qu ...
- [转]Wote用python语言写的imgHash.py
#!/usr/bin/python import glob import os import sys from PIL import Image EXTS = 'jpg', 'jpeg', 'JPG' ...
- Android项目实战_手机安全卫士拦截骚扰
###1.骚扰拦截需求分析1.界面1.1 黑名单列表界面1.2 添加黑名单界面2.功能2.1 黑名单的添加.删除2.2 拦截电话2.3 拦截短信 ###2.黑名单数据库的创建1.分析需要的字段id 主 ...
- ES6学习之箭头函数
ES6学习笔记--箭头函数 箭头函数一直在用,最近突然想到重新看一下箭头函数的用法,所以这里做一些总结. 箭头函数长这个样子: let fn = a => a++; // fn 是函数名, a= ...
- Angular——基本使用
基本介绍 1.AngularJS是一个框架(诸多类库的集合)以数据和逻辑做为驱动(核心). 2.AngularJS有着诸多特性,最为核心的是:模块化.双向数据绑定.语义化标签.依赖注入等. 模块化 使 ...
- js 学习笔记---基本概念
早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 ! 1.使用严格模式,"use strict",虽然不适用,但是要知道,以免别人使用时 ...