已经是第二次遇到这个问题了:

 #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"的更多相关文章

  1. ArcMap中的名称冲突问题

    这是一个非常有趣的问题. 现在我一个点层叫"汶川73",有一个面层也叫"汶川73",使用空间连接工具来计算每个面中被落入有多少个点.但不管怎么算,结果都只能生成 ...

  2. jQuery 名称冲突

    jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 ...

  3. hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)

    1.HDFS + WEB 项目 报java.lang.VerifyError... 异常 抛异常: Exception in thread "main" java.lang.Ver ...

  4. LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对

    回到目录 在上一篇文章中提到了并发冲突,还说详细的说明在这讲来说,呵呵,那现在就说一下吧! 并发冲突产生的原因 事实上,linq to sql中的并发冲突是指记录在进行update操作时,客户端A1取 ...

  5. jQuery中 $ 符号的冲突问题

    jQuery中 $ 符号的冲突问题是常见问题之一.   在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本 ...

  6. MyEclipse中修改项目运行地址栏中项目名称

    MyEclipse中修改项目运行地址栏中项目名称 1.如果出现从SVN上检出的项目名称跟运行地址栏中的项目名称不一致, 可以通过以下步骤进行修改 项目鼠标右键,单击"Properties&q ...

  7. org.xml.sax.SAXParseException;在实体引用中, 实体名称必须紧跟在 '&' 后面

    错误信息如下:org.xml.sax.SAXParseException;在实体引用中, 实体名称必须紧跟在 ‘’&’’ 后面 出现这个错误的原因是在xml中使用&,实际上xml中不支 ...

  8. php获取指定文件夹中文件名称

    /** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...

  9. Spring 中参数名称解析 - ParameterNameDiscoverer

    Spring 中参数名称解析 - ParameterNameDiscoverer Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.ht ...

随机推荐

  1. Volley(三)—— ImageRequest & Request简介

    Volley(三)—— ImageRequest & Request简介 上 篇文章我们讲 到了如何用volley进行简单的网络请求,我们可以很容易的接受到string.JsonObjec类型 ...

  2. css3爆炸效果更换图片轮播图

    思路:给一个div设置一个背景图片1.jpg,然后在这个div上面用两个for循环动态的创建一个列数为C行数为R数量的span,并给这些span设置宽高.定位并设置背景图片0.jpg,然后设置每个sp ...

  3. extjs ajax请求与struts2进行交互

    sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支 持比较良好,但是对于像E ...

  4. WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体

    原文:http://blog.csdn.net/kiss0622/article/details/5852153 方法一: 1.父窗口代码 Window1.xaml.cs private void B ...

  5. Restful是什么,SOAP Webservice和RESTful Webservice

    首先,应该怀着这样一种心态来学习Restful——Restful你可以将其理解一种软件架构风格,并且诠释了Http协议的设计初衷,所以不要把他理解的那么神秘,Restful风格有好处,当然也是有坏处的 ...

  6. windows7下修改hosts文件无效解决办法

    通常会为了开发方便.或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例:

  7. C#模拟POST提交表单(一)--WebClient

    C#的提交表单方式主要有两种WebClient与HttpWebRequest,这里先介绍一种 WebClient,转送门:http://msdn.microsoft.com/zh-cn/library ...

  8. chrome拓展开发实战

    chrome拓展开发实战:页面脚本的拦截注入 时间 2015-07-24 11:15:00  博客园精华区 原文  http://www.cnblogs.com/horve/p/4672890.htm ...

  9. OpenGL、Open Inventor、WebGL、Three.js、ARToolkit、JSARToolkit

    [准备看的] http://www.hewebgl.com/ http://www.linuxdiyf.com/viewarticle.php?id=399205 http://blog.sina.c ...

  10. 从0开始学Java——从jsp到servlet转换的各种辅助元素介绍

    1. 指示元素,<%@指示元素 [属性=值]* %> 其中指示元素包括page, include, 和tablib三个. 其中  属性=值 可以有多对. 其中page用来告知容器如何转译目 ...