C++ 中的名称冲突之 "y1"
已经是第二次遇到这个问题了:
#include <bits/stdc++.h>
using namespace std; const int N(); int dp[N][][N][][N];
int x1, x2, y1, y2; int dfs(int x1, int s, int x2, int t, int y){
int & now=dp[x1][s][x2][t][y];
if(~now) return now;
int sum=, cnt=;
if(s==){
sum+=dfs(x1, , x2, t, y-), cnt++;
if(t==)
sum+=dfs(x1, s, x2, , y-), cnt++;
else if(x2>)
sum+=dfs(x1, , x2-, t, y), cnt++;
}
else{
if(x1>) sum+=dfs(x1-, s, x2, t, y), cnt++;
if(t==)
sum+=dfs(x1, s, x2, , y-), cnt++;
else if(x2>)
sum+=dfs(x1, s, x2-, t, y), cnt++;
} if((y1+)*(-s)+(y2+)*(-t)< y) //forbidden numbers;
sum+=dfs(x1, s, x2, t, y-), cnt++; return now = sum!=cnt;
} int a[N]; int main(){
int T;
int n;
for(cin>>T; T--; ){
cin>>n;
int p;
for(int i=; i<n; i++){
cin>>a[i];
if(a[i]==) p=i;
}
x1=, x2=, y1=, y2=;
int i; for(i=p-; i>= && a[i]>a[i+]; i--, x1++); for(; i>= && a[i]<a[i+]; i--, y1++);
for(i=p+; i<n && a[i]>a[i-]; i++, x2++);
for(; i<n && a[i]<a[i-]; i++, y2++); memset(dp, -, sizeof(dp));
x1=max(x1-, ), x2=max(x2-, ); // cout<<x1<<' '<<x2<<' '<<y1<<' '<<y2<<endl;
int peak=(p!=) + (p!=n-);
for(int i=; i<=n--x1-x2-peak; i++)
dp[][][][][i]=; //error-prone int s=p==, t=p==n-; //error-prone int res=dfs(x1, s, x2, t, n--x1-x2);
// cout<<res<<endl;
puts(res==?"Alice": "Bob");
}
return ;
}
试图在终端编译,运行: (gcc version 4.8.4)
g++ main.cpp -std=c++ -o main && ./main <in
返回结果:
main.cpp::: error: ‘int y1’ redeclared as different kind of symbol
int x1, x2, y1, y2;
^
In file included from /usr/include/features.h::,
from /usr/include/assert.h:,
from /usr/include/c++/4.8/cassert:,
from /usr/include/x86_64-linux-gnu/c++/4.8/bits/stdc++.h:,
from main.cpp::
/usr/include/x86_64-linux-gnu/bits/mathcalls.h::: error: previous declaration of ‘double y1(double)’
__MATHCALL (y1,, (_Mdouble_));
^
显示变量 y1 和 C++ 标准库中的某个变量名称冲突,这个问题应当引起注意。
另外这不是头文件写成 <bits/stdc++.h> 引起的,即使换成各具体的头文件(<iostream>, <algorithm>, <ctring>)还是会发生这个错误。
具体原因及解决办法还有待研究。
C++ 中的名称冲突之 "y1"的更多相关文章
- ArcMap中的名称冲突问题
这是一个非常有趣的问题. 现在我一个点层叫"汶川73",有一个面层也叫"汶川73",使用空间连接工具来计算每个面中被落入有多少个点.但不管怎么算,结果都只能生成 ...
- jQuery 名称冲突
jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 ...
- hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)
1.HDFS + WEB 项目 报java.lang.VerifyError... 异常 抛异常: Exception in thread "main" java.lang.Ver ...
- LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对
回到目录 在上一篇文章中提到了并发冲突,还说详细的说明在这讲来说,呵呵,那现在就说一下吧! 并发冲突产生的原因 事实上,linq to sql中的并发冲突是指记录在进行update操作时,客户端A1取 ...
- jQuery中 $ 符号的冲突问题
jQuery中 $ 符号的冲突问题是常见问题之一. 在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本 ...
- MyEclipse中修改项目运行地址栏中项目名称
MyEclipse中修改项目运行地址栏中项目名称 1.如果出现从SVN上检出的项目名称跟运行地址栏中的项目名称不一致, 可以通过以下步骤进行修改 项目鼠标右键,单击"Properties&q ...
- org.xml.sax.SAXParseException;在实体引用中, 实体名称必须紧跟在 '&' 后面
错误信息如下:org.xml.sax.SAXParseException;在实体引用中, 实体名称必须紧跟在 ‘’&’’ 后面 出现这个错误的原因是在xml中使用&,实际上xml中不支 ...
- php获取指定文件夹中文件名称
/** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...
- Spring 中参数名称解析 - ParameterNameDiscoverer
Spring 中参数名称解析 - ParameterNameDiscoverer Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.ht ...
随机推荐
- Volley(三)—— ImageRequest & Request简介
Volley(三)—— ImageRequest & Request简介 上 篇文章我们讲 到了如何用volley进行简单的网络请求,我们可以很容易的接受到string.JsonObjec类型 ...
- css3爆炸效果更换图片轮播图
思路:给一个div设置一个背景图片1.jpg,然后在这个div上面用两个for循环动态的创建一个列数为C行数为R数量的span,并给这些span设置宽高.定位并设置背景图片0.jpg,然后设置每个sp ...
- extjs ajax请求与struts2进行交互
sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支 持比较良好,但是对于像E ...
- WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体
原文:http://blog.csdn.net/kiss0622/article/details/5852153 方法一: 1.父窗口代码 Window1.xaml.cs private void B ...
- Restful是什么,SOAP Webservice和RESTful Webservice
首先,应该怀着这样一种心态来学习Restful——Restful你可以将其理解一种软件架构风格,并且诠释了Http协议的设计初衷,所以不要把他理解的那么神秘,Restful风格有好处,当然也是有坏处的 ...
- windows7下修改hosts文件无效解决办法
通常会为了开发方便.或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例:
- C#模拟POST提交表单(一)--WebClient
C#的提交表单方式主要有两种WebClient与HttpWebRequest,这里先介绍一种 WebClient,转送门:http://msdn.microsoft.com/zh-cn/library ...
- chrome拓展开发实战
chrome拓展开发实战:页面脚本的拦截注入 时间 2015-07-24 11:15:00 博客园精华区 原文 http://www.cnblogs.com/horve/p/4672890.htm ...
- OpenGL、Open Inventor、WebGL、Three.js、ARToolkit、JSARToolkit
[准备看的] http://www.hewebgl.com/ http://www.linuxdiyf.com/viewarticle.php?id=399205 http://blog.sina.c ...
- 从0开始学Java——从jsp到servlet转换的各种辅助元素介绍
1. 指示元素,<%@指示元素 [属性=值]* %> 其中指示元素包括page, include, 和tablib三个. 其中 属性=值 可以有多对. 其中page用来告知容器如何转译目 ...