L2-012. 关于堆的判断
2017-03-24 10:00
316 查看
开始有几组数据过不了,没看清楚题意。没有考虑负数的情况
然后我做的是直接读入一个字符串,然后判断里面的信息。这样的话,会显得代码别样丑。然后问了问别人,用的scanf,这样的话,就不用判断是不是负数了~
scanf 来一波
然后我做的是直接读入一个字符串,然后判断里面的信息。这样的话,会显得代码别样丑。然后问了问别人,用的scanf,这样的话,就不用判断是不是负数了~
scanf 来一波
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 1000+10 int a[maxn]; void jd(int i)//建堆 { if(i==1) return ; else{ if(a[i]<a[i/2]) swap(a[i],a[i/2]); jd(i/2); } } int n,m; int findf(int k) { for(int i=1;i<=n;i++) { if(a[i]==k) return i; } } int main() { // freopen("D://input.txt","r",stdin); scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); jd(i); } for(int ii=0;ii<m;ii++){ int x,y;char s[30],s1[30],s2[30]; scanf("%d",&x); scanf("%s",s); int k1=findf(x); if(s[0]=='a') { scanf("%d",&y); int k2=findf(y); if(k1/2==k2/2) printf("T\n"); else printf("F\n"); scanf("%s %s",s,s1);//别忘了,将没有输完的字符串输完,要不然就到下一轮了 } else { scanf("%s %s",s,s1); if(s[0]=='a') { scanf("%s %d",s2,&y); int k2=findf(y); if(k1/2==k2) printf("T\n"); else printf("F\n"); } else if(s1[0]=='r') { if(k1==1) printf("T\n"); else printf("F\n"); } else { scanf("%s %d",s1,& 4000 amp;y); int k2=findf(y); if(k2/2==k1) printf("T\n"); else printf("F\n"); } } } return 0; }
相关文章推荐
- PAT L2-012. 关于堆的判断【数据结构】
- 团体程序设计天梯赛-练习集 L2-012. 关于堆的判断
- L2-012. 关于堆的判断
- L2-012. 关于堆的判断
- L2-012. 关于堆的判断
- L2-012. 关于堆的判断
- L2-012. 关于堆的判断
- PAT L2-012. 关于堆的判断
- PAT L2-012. 关于堆的判断
- 团体程序设计天梯赛-练习集 -- L2-012. 关于堆的判断(最小堆)
- PAT L2-012. 关于堆的判断(堆)
- 团体程序设计天梯赛L2-012 关于堆的判断
- L2-012. 关于堆的判断-PAT团体程序设计天梯赛GPLT
- L2-012 关于堆的判断
- L2-012. 关于堆的判断(小顶堆)
- PAT L2-012. 关于堆的判断(最小堆调整)
- L2-012. 关于堆的判断-PAT甲级真题(堆的建立,向上调整)
- L2-012. 关于堆的判断 (堆操作)
- L2-012. 关于堆的判断
- L2-012. 关于堆的判断 (小顶堆)