离散化学习心得

例如,poj2528,是个线段树问题,但是由于数据量非常大,所以如果不离散化的话就一定会MLE,所以我们这里要用到离散化。

就拿2528的离散化来说吧,因为我们只需要他的左右支点坐标,他就是把每个点映射在坐标上,然后将他们排序,排序过后就分别给他们赋值(注意,只能给不同的赋值,相同的赋值一次就好了),这样原来很大的值就被缩小了:

就2528来说,离散化操作的代码如下:


a[mx ] [2]   //a[i][0],a[i][1]分别表示左右节点;

struct ss
{
   int weizhi;  //为他标上一个序号
   int point;   //输入的值


}san[mx*4];  // 结构体,用于存储输入的数据


bool cmp(ss a1,ss a2)
{
    return  a1.point<a2.point;
}



  for(i=0;i<n;i++)
            {
                scanf("%d %d",&a[i][0],&a[i][1]);
                san[i*2].point=a[i][0];
                san[i*2+1].point=a[i][1];
                san[i*2].weizhi=-(i+1);   //左支记为  --(i+1);
                san[i*2+1].weizhi=i+1;
            }
            sort(san,san+n*2+1,cmp);  //将他按大小顺序排序
            int temp=san[0].point;
            int cnt=1;    //计算不同点的个数


            for(i=0;i<n*2;i++)
            {
                if(temp!=san[i].point)
                {
                    cnt++;
                    temp=san[i].point;
                }
               if(san[i].weizhi<0)
               {
                   a[-san[i].weizhi-1][0]=cnt;


               }
               else a[san[i].weizhi-1][1]=cnt;


            }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
离散数学是计算机科学领域中一门重要的基础课程,它主要研究离散化的数学结构和离散的数学问题。在计算机领域,离散数学的概念和方法广泛应用于算法设计、数据结构、计算机网络等领域。如果想要快速学习离散数学,可以考虑使用CSDN这一资源。 首先,CSDN是一个知名的技术社区,其中有大量的技术博客、教程和论坛讨论帖。在CSDN上可以找到很多离散数学的学习资料,包括学习笔记、课程教程、习题解析等。可以通过搜索关键词"离散数学"或"离散数学CSDN"来寻找相关资源。 其次,CSDN上有很多专业的IT从业者分享自己的学习经验和心得体会。可以通过查看这些人的博客或文章,了解离散数学在实际应用中的意义和方法。 另外,CSDN还有很多计算机科学相关的论坛和问答板块,可以在这些地方提问自己对离散数学的疑惑,向其他人请教。许多人都会分享他们的知识和经验,帮助你更好地理解离散数学的概念和方法。 最后,为了更好地学习离散数学,可以结合使用CSDN上的学习资源与传统的学习方式,如参考教材、参加课堂讨论和做习题。通过不断的学习和实践,掌握离散数学的相关知识和技巧。 综上所述,通过CSDN这一资源,我们可以快速获取离散数学的学习资料、与他人交流讨论,并结合其他学习方式进行全面的学习。希望这些方法能够帮助你在离散数学领域取得更好的学习成果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值