3月20日总结

本周主要学习了
1.如何a题,如何用贪心思想去a题
在做题目的过程中感悟如何把题目中的有用的信息总结出规律来,然后从数据中找到可以操作的点,将其改写成可以运行的程序,并对题目中的数据有“敏感”,有“直觉”,找到题目中需要被操作的数据,这是关键
2.如何运用网上的资源来配合解题
对于目前的我来说,做题的时候上网搜集资料是无法避免的,所以要在做题的过程中不断地尝试,如果真的解决不了,没有思路,就去csdn。但是这是有前提的,就是要在找到题解后,将题解手打下来,在后面做出注释,要有更高的要求。对自己会、并且自己独立解决的题目,要学会如何优化,如何更加简便的表达自己的思想。对于自己不会的题目,要积极搜索csdn上不同的解法,并找到自己能理解的题解和无法理解的题解,对于不能理解的题解,要将其作为知识的切入点,从其中延展出去,找到更多的知识、更多的思维来扩充自己的思想,让自己的思想更为丰富。就好比今天从网上查找资料解决B时,找到了用并查集来优化算法的题解,这对于我来说是一种新的学习方式(大学中)。
3.做题目中痛苦并快乐着
今天一天都是在做题中度过的,不断地翻阅资料,不断地查找相关的知识,苦苦思考几个小时都无法解决一个问题的感觉是十分痛苦的,但是越是想不出来,自己越是想要去解决,在这种想法下,强迫着自己坚持去思考、去探索。就这样,我明白了并查集的原理,明白了为什么要优化算法、明白了计算机程序解题和数学解题的不同之处。在AC之后,那种兴奋和喜悦,怕是我人生中的一大财富,但是可惜的是自己的能力真的有限,提升速度很慢,数学基础并不牢靠,需要很长的时间来积累和提升,再加上其他学习事务繁重,只能将休息的时间省去了,需要找到快速调节自己心情的方式。
4.遗留的一些问题

  • B题中优化问题,并查集的优化思想只想到了一半
  • 搬桌子问题中如何用重叠最大次数来解题
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int maxn=10009;
int p[maxn];
int n;
struct node
{
    int v,t;

}e[maxn];
bool cmp(node a,node b)
{
    return a.v>b.v;
}
int find(int x)
{
    if(p[x]==x)
    return x;
    else
    return p[x]=find(p[x]);
}
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<maxn;i++)
          p[i]=i;
        for(int i=0;i<n;i++)
        scanf("%d%d",&e[i].v,&e[i].t);
        sort(e,e+n,cmp);
        int tol=0;
        int tmp;
        for(int i=0;i<n;i++)
        {
            tmp=find(e[i].t);
            //printf("%d ",tmp);
               if(tmp>0)
               {
                   tol+=e[i].v;
                   p[tmp]=tmp-1;
               }
               //printf(" %d\n",p[tmp]);
               //printf("%d %d\n",e[i].v,e[i].t);
        }
        printf("%d\n",tol);
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值