首页 > 其他分享 >POJ 1308 Is It A Tree?

POJ 1308 Is It A Tree?

时间:2023-08-27 11:33:28浏览次数:37  
标签:int Tree 1308 POJ && jd 抓住 源代码


这是我做出来的第一道有含量的ACM题,应该好好总结一下!

这道1308的题,其实很简单,只要抓住了树的特征,就可以解出来。

我的解法的思想是这样的:树的分支数m和树的结点数n有一个关系:n==m+1,只要抓住了这个特征,问题便可迎刃而解!

 

源代码:

#include<stdio.h>
#include<cstring>int a,b,m=0,n=0,k=0;
int i;int main()
{
 int jd[10000];
 memset(jd,-1,40000);//将数组jd[]所有元素,初始化为-1。

 while(scanf("%d%d",&a,&b))
 {
 if(a==-1&&b==-1)
 break;
 if(a==0&&b==0)
 {
 k++;
 for(i=0;i<10000;i++)
 {
 if(jd[i]!=-1)
 n++;
 }
 if(n==m+1)
 printf("Case %d is a tree./n",k);
 else if(n==0&&m==0)//此处意思是空树也是树,即什么也不输入,只有两个0。
 printf("Case %d is a tree./n",k);
 else
 printf("Case %d is not a tree./n",k); 
 memset(jd,-1,40000);//记得判断完一组之后,重新初始化。
 m=n=0;//不要将k也清零,它是用来记录有多少组的。
 }
 else
 {
 m++;
 jd[a]=a;//将输入的数,存入对应下标的数组中。
 jd[b]=b;
 }
 }
 return 0;
}

后记:这还是一道简单的题,还有很多题,我都做不出来,我得加油,努力,好好学习!!!不能没有出息,被别人看不起!!!

标签:int,Tree,1308,POJ,&&,jd,抓住,源代码
From: https://blog.51cto.com/u_5173797/7252068

相关文章

  • 【AL&MT】Decision Tree
    1Introductionusualclassindecisiontree:ID3,C4.5,CARTID3:/InformattionEntropy,基于信息熵和信息增益C4.5:/信息增益率,baseontheID3CART:/基尼系数,usingregressorclass2achieving1.1ID3decisiontreeD-trainingset,a-attribut......
  • CF1858D Trees and Segments
    一道考查预处理技巧的dp。观察式子\(a\timesL_0+L_1\),一个显然的想法是“定一求一”,即预处理求出对于每个\(L_1\)最大的\(L_0\),然后对于每个\(a\),枚举\(L_1\),统计最大的\(a\timesL_0+L_1\)。这样,我们将问题转化为了:已知\(L_1=len\),求出\(dp_{len}=L_{0max}\)。dp数......
  • CodeForces 825G Tree Queries
    洛谷传送门CF传送门模拟赛赛时做法。看到查询路径点权最小值,想到建重构树,满足重构树上\(\operatorname{LCA}(x,y)\)为原树上\(x\toy\)路径的点权最小值。建树方法可以参考CF1797FLiHuaandPath。于是问题变成了,维护一个点集,支持加点,查询给定点\(x\)到点集中所有......
  • [CF1794E] Labeling the Tree with Distances 题解
    [CF1794E]LabelingtheTreewithDistances题解题目描述给你一个树,边权为\(1\)。给定\(n-1\)个数,你需要将这些数分配到\(n-1\)个节点上。一个点\(x\)是好的,当且仅当存在一种分配方案,所有被分配数的点到\(x\)的最短路径长度等于其被分配的数。求所有好点。思路从......
  • P3521 [POI2011] ROT-Tree Rotations
    P3521[POI2011]ROT-TreeRotations首先合并两棵子树的时候只关心子树内值的个数,并不关心子树内具体是什么顺序,引导从下向上线段树合并计算代价。每一个值只会出现一次,首先每个叶子节点开一棵动态开点值域为\(1-n\)的线段树维护,初始只有自己的值的位置为\(1\)。然后对于每......
  • git_使用git worktree命令使不同分支的代码文件可以同步运行
    情景再现:我本地代码正在开发后台系统的过程中,前台开发的同事时不时地会来找我要IP地址,使用正在开发的后台管理系统来进行一些数据的增删改查.这个时候直接提供正在开发的版本的开发服务器地址是不行的,因为随着代码的编写时不时的报个bug是家常便饭,对于使用者来说非常......
  • el-tree 折叠节点时去掉 defaultExpandedKeys 中已折叠的节点及其子节点
    问题场景树形节点默认是全部折叠的。展开节点A,再把它折叠。然后给节点B新增子节点,新增成功后刷新树,却发现节点A是展开的。原因分析树刷新后全部节点都默认是折叠的,除非defaultExpandedKeys数组中有数据(这些节点数据是展开的)。因此,只需要在折叠节点A时,在defaultExpandedKeys......
  • 遍历Tree控件中的节点
    classSapGuiTree:classTreeType(enum.Enum):SIMPLE=0LIST=1COLUMN=2@classmethoddefshow(cls,tree,node,indention):print(indention,node,[tree.GetItemText(node,col......
  • 「题解」Codeforces 825G Tree Queries
    点权转边权,把边权设为两个端点的\(\min\),然后发现询问\(x\)的答案,就是询问\(x\)与所有黑点的虚树,边权的\(\min\)是多少。假设要判定答案是否\(\geqk\),那么就是询问\(x\)只经过\(\geqk\)是否能到达所有黑点,于是想到建立Kruskal重构树,那么\(x\)与所有黑点的LCA......
  • POJ31900(贪心)
    想对了一半,还是不扎实原本想将初始化和之后处理一起放到for里面的(i.e.将push,ans=1等放到for里面),发现比较麻烦,然后死磕这个,要建函数什么的,看了人家的代码之后发现没有必要,当然是美观了一点。其实能不能将初始化和处理一起写最重要的是看你的思路isclearornot,sometimesi......