C++ 中的名称冲突之 y1
已经是第二次遇到这个问题了:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 5 const int N(105); 6 7 int dp[N][2][N][2][N]; 8 int x1, x2, y1, y2; 9 10 int dfs(int x1, int s, int x2, int t, int y){ 11 int & now=dp[x1][s][x2][t][y]; 12 if(~now) return now; 13 int sum=0, cnt=0; 14 if(s==0){ 15 sum+=dfs(x1, 1, x2, t, y-1), cnt++; 16 if(t==0) 17 sum+=dfs(x1, s, x2, 1, y-1), cnt++; 18 else if(x2>0) 19 sum+=dfs(x1, 0, x2-1, t, y), cnt++; 20 } 21 else{ 22 if(x1>0) sum+=dfs(x1-1, s, x2, t, y), cnt++; 23 if(t==0) 24 sum+=dfs(x1, s, x2, 1, y-1), cnt++; 25 else if(x2>0) 26 sum+=dfs(x1, s, x2-1, t, y), cnt++; 27 } 28 29 if((y1+1)*(1-s)+(y2+1)*(1-t)< y) //forbidden numbers; 30 sum+=dfs(x1, s, x2, t, y-1), cnt++; 31 32 return now = sum!=cnt; 33 } 34 35 int a[N]; 36 37 int main(){ 38 int T; 39 int n; 40 for(cin>>T; T--; ){ 41 cin>>n; 42 int p; 43 for(int i=0; i<n; i++){ 44 cin>>a[i]; 45 if(a[i]==1) p=i; 46 } 47 x1=0, x2=0, y1=0, y2=0; 48 int i; 49 50 for(i=p-1; i>=0 && a[i]>a[i+1]; i--, x1++); 51 52 for(; i>=0 && a[i]<a[i+1]; i--, y1++); 53 for(i=p+1; i<n && a[i]>a[i-1]; i++, x2++); 54 for(; i<n && a[i]<a[i-1]; i++, y2++); 55 56 memset(dp, -1, sizeof(dp)); 57 x1=max(x1-1, 0), x2=max(x2-1, 0); 58 59 // cout<<x1<<' '<<x2<<' '<<y1<<' '<<y2<<endl; 60 int peak=(p!=0) + (p!=n-1); 61 for(int i=0; i<=n-1-x1-x2-peak; i++) 62 dp[0][1][0][1][i]=1; //error-prone 63 64 int s=p==0, t=p==n-1; //error-prone 65 66 int res=dfs(x1, s, x2, t, n-1-x1-x2); 67 // cout<<res<<endl; 68 puts(res==1?"Alice": "Bob"); 69 } 70 return 0; 71 }
试图在终端编译,运行: (gcc version 4.8.4)
g++ main.cpp -std=c++11 -o main && ./main <in
返回结果:
main.cpp:8:13: error: ‘int y1’ redeclared as different kind of symbolint x1, x2, y1, y2;^ In file included from /usr/include/features.h:374:0,from /usr/include/assert.h:35,from /usr/include/c++/4.8/cassert:43,from /usr/include/x86_64-linux-gnu/c++/4.8/bits/stdc++.h:33,from main.cpp:1: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:241:1: error: previous declaration of ‘double y1(double)’__MATHCALL (y1,, (_Mdouble_));^
显示变量 y1 和 C++ 标准库中的某个变量名称冲突,这个问题应当引起注意。
另外这不是头文件写成 <bits/stdc++.h> 引起的,即使换成各具体的头文件(<iostream>, <algorithm>, <ctring>)还是会发生这个错误。
具体原因及解决办法还有待研究。
转载于:https://www.cnblogs.com/Patt/p/5518524.html
C++ 中的名称冲突之 y1相关推荐
- C++ 中名称冲突之 y1
已经是第二次遇到这个问题了: 试图在终端编译,运行: (gcc version 4.8.4) 返回结果: 显示变量y1 和C++标准库中的某个变量名称冲突,这个问题应当引起注意. 另外这不是头文件写成 ...
- ArcMap中的名称冲突问题
这是一个非常有趣的问题. 现在我一个点层叫"汶川73",有一个面层也叫"汶川73",使用空间连接工具来计算每个面中被落入有多少个点.但不管怎么算,结果都只能生成 ...
- JQuery 名称冲突
jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 ...
- 如何在JavaScript中声明名称空间?
如何在JavaScript中创建名称空间,以使我的对象和函数不会被其他同名对象和函数覆盖? 我使用了以下内容: if (Foo == null || typeof(Foo) != "obje ...
- webgl中解决深度冲突-多边形偏移
1.webgl中解决深度冲突-多边形偏移 1.什么是深度冲突? 就是当几何图形或者物体的两个表面极为接近时,就会使得表面看上去斑斑点点,这种现象就是 深度冲突. 看看这个缓冲区渲染出的效果 缓冲区数据 ...
- Android开发——如何解决三方库中的类名冲突问题
文章目录 背景 一.尝试复现 二.初步想法 三.继续思考 3.1 源码引入 3.2 是否可以经过二次混淆改名 3.3 Android Transform 3.4 直接修改本地aar文件 3.4.1 找 ...
- git excel冲突_Excel宏名称冲突
git excel冲突 Last week I ran into an interesting problem, when trying to fix a macro button in a clie ...
- 目标检测中的特征冲突与不对齐问题
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 前言 昨天看到一篇商汤的刷榜文< ...
- 如何解决Git中的合并冲突
如何解决Git中的合并冲突? #1楼 对于想要半手动解决合并冲突的Emacs用户: git diff --name-status --diff-filter=U 显示所有需要解决冲突的文件. 依次打开 ...
最新文章
- linux下C程序:运行单个实例
- 【bzoj5100】[POI2018]Plan metra 构造
- Jerry Wang 2013年几篇比较受欢迎的SAP社区博客
- copyof java_JDK10——copyOf方法
- Python_百度图片以及百度贴吧图片抓取
- 计算机考试上机安排,全国计算机等级考试模拟上机安排(最终版).doc
- Beanutils的使用
- Java--随机数和随机数种子(转)
- 学了python做什么自由职业者_我又有一位程序员朋友成了自由职业者
- Oracle 12c 中修改PDB数据库的日志归档模式
- a foreign key constraint fails ,外键表中添加数据时无法实现
- keras入门(三)搭建CNN模型破解网站验证码 1
- Unity子物体脱离父物体,解除父子关系,子物体不随父物体移动
- OS X键盘快捷键Cheatsheet
- Matlab:图像轮廓的曲率计算
- modbustcp测试工具怎么用_【转】年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员...
- 探索<赛博朋克>风格游戏美术
- 2021为什么那么多人都在做亚马逊测评?2022年还能做吗?
- 【名词】什么是PV和UV?
- css3实现背景图片半透明内容不透明的方法