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

 #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. ASP.NET MVC3 Model验证总结(转)

    推荐:   ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-meta ...

  2. Linux 进程与线程二(等待--分离--取消线程)

    int pthread_join(pthread_t thr,void **thr_return); pthread_join函数用于挂起当前线程,直至th指定的线程终止为止. 如果另一个线程返回值不 ...

  3. C语言 文件操作6--文件打开方式详解

    fopen文件打开模式 r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在r+ 打开可读可写的文件,该文件必须存在(这里的写 ...

  4. 架构MVC——JS中的理论

    什么是MVC MVC是一种设计模式,它将应用划分为3个部分:数据(模型).展现层(视图)和用户交互层(控制器). 一个事件发生的过程可以描述如下: 用户和应用产生交互 控制器的事件处理器被触发 控制器 ...

  5. 求时间差的sql语句。 比如如下数据

    msisdn createtime closetime138 2011-5-17 15:30:00:000 2011-5-17 15:30:00:530138 2011-5-17 15:40:00:0 ...

  6. python数字图像处理(3):图像像素的访问与裁剪

    图片读入程序中后,是以numpy数组存在的.因此对numpy数组的一切功能,对图片也适用.对数组元素的访问,实际上就是对图片像素点的访问. 彩色图片访问方式为: img[i,j,c] i表示图片的行数 ...

  7. 通过jdbc获取数据库中的表结构

    通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类   1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.Met ...

  8. Fragment中监听onKey事件,没你想象的那么难。

    项目中越来越多的用到Fragment,在用Fragment取代TabHost的时候遇到了一个问题,我们都知道,TabHost的Tab为Activity实例,有OnKey事件,但是Fragment中没有 ...

  9. linux实践——内核编程 基础模块

    一.内核模块的概念 Linux模块(module)是一些可以作为独立程序来编译的函数和数据类型的集合.内核模块给我们带来的便利是模块本身并不被编译进内核文件,可在内核运行期间动态的安装或卸载.因为如果 ...

  10. ios —— UIViewAdditions 布局坐标类库

    方便大家计算视图的高度,宽度,上下左右坐标,简化代码操作,更加直观 下载地址:http://download.csdn.net/detail/humingtao2013/7511657