2020_0707_day2

昨天日期竟然写错了

洗心革面啊

mmp,今天这是怎么了,早上比赛莫名其妙连接不上不说,今天晚上写博客又死活打不开md编辑器

果然还是万年AB,好在越来越好了,虽然离理想的一天的安排还有很大差距

真.英语阅读课

A

简单读了下题目,树的值是相同颜色两点的距离的和

颜色给定的范围,求所有可能的值

感觉可能要bfs?

感觉暴力也许能做,比较麻烦,pass

 

竟然真用了bfs,不过看不大懂,唉

以后补题不随便pass了

太浮躁了

B

3种操作:移动一步,带兵移动一步,解除陷阱

带最多的兵到终点

求能带的最多士兵

条件比较多,应该不是前三题,pass

01背包问题变形?可能要dp

 

看来对于二分的理解还是太弱,大数据范围的题目(穷举解决不了)还要注意可能是二分法;注意构造

    while(l<r){
        int mid=(l+r)>>1;
        c=n+1,mx=0;
        for(int i=0;i<k;i++){
            if(b[i].d<=mid||b[i].r<=mx) continue;
            mx=max(mx,b[i].l-1);
            c+=(b[i].r-mx)*2;
            mx=b[i].r;
        }
        if(c>t) l=mid+1;
        else r=mid;
    }

————————————————
版权声明:本文为优快云博主「一米の阳光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_43627100/article/details/103300822

水题,贪心,不解释

D

贪心,水题,找出小的,然后找便宜的,总共lg2n场比赛

好吧,以为是水题,结果还要考虑其他对手能出线才行,重新考虑

应该是递归?

附上错误解

策略选择有问题,贪心策略太复杂,应该没法选,考虑bfs

int a[263000];

int p1 = 0, p2 = 0, cs;

long long ans = 0;

void zhaoruoji() {

sort(a, a + p1);

if (p2 > 0) {

ans += 0;

p2--;

p2 /= 2;

if (p1 % 2 == 1) {

for (int i = 0; i < p1 / 2; i++)

a[i] = a[2 * i + 1];

p1 = p1 / 2;

} else {

for (int i = 0; i < (p1 + 1) / 2; i++)

a[i] = a[2 * i];

p1 = (p1 + 1) / 2;

}

sort(a, a + p1);

} else {

ans += a[0];

cout << a[0] << "\t";

for (int i = 0; i < (p1 + 1) / 2; i++)

a[i] = a[2 * i + 2];

p1 = (p1 + 1) / 2;

sort(a, a + p1);

}

}

int main() {

\#ifdef LOCAL

freopen("zz_in.txt", "r", stdin);

freopen("zz_op.txt", "w", stdout);

\#endif

int t, i, j, k;

int n, shu = 0;

cin >> n;

cs = log(n) / log(2);

int p = 0, temp, ok = 0;

for (i = 0; i < n; i++) {

scanf("%d", &temp);

if (temp == -1) {

ok = 1;

continue;

}

if (ok == 0) {

p2++;

continue;

}

a[p1] = temp;

p1++;

}

while (cs--) {

zhaoruoji();

}

cout << ans << endl;

还是太菜,就是贪心+暴力

E

C题,竟然连看都没看,唉

第x块如果是x是r的倍数,则涂一种颜色,是b的倍数,则涂另一种颜色。如果既是r又是b的倍数,那么两种颜色都可以涂

利用gcd,模拟即可

F

水题,找规律,比较好找,反正就是-2,-1

《C++编程实例100篇》是一本深入实践、极具价值的编程教程,它针对C++编程语言提供了丰富的实例,旨在帮助读者更好地理解和掌握C++的各项特性与编程技巧。这本书的经典之处在于它将理论与实践相结合,通过100个精心设计的编程实例,覆盖了C++的各个核心领域,包括基础语法、面向对象编程、模板、异常处理、STL(标准模板库)等。 我们来探讨C++的基础语法。C++是C语言的增强版,它保留了C语言的高效性和灵活性,并引入了类、对象和继承等面向对象编程概念。基础语法包括变量声明、数据类型、运算符、控制结构(如if语句、for循环、while循环)、函数的定义和调用等。在实例中,你可能会遇到如何编写简单的程序,如计算两个数的和,或者实现一个简单的猜数字游戏。 C++的面向对象编程是其一大特色。通过类和对象,你可以构建复杂的软件系统。类是对象的蓝图,它定义了对象的属性和行为。实例化一个类,就是创建一个具体的对象。继承允许你创建新的类,这些类从现有的类派生,共享其属性和方法,同时可以添加新的功能。多态性是面向对象的另一个关键特性,它使得不同类型的对象可以对同一消息作出不同的响应。这些概念在实例中会以各种形式展现,例如设计一个图形界面的类层次,或实现一个简单的模拟游戏。 接下来是模板,C++的模板功能让代码更加通用,可以处理不同类型的数据。模板分为函数模板和类模板,前者可以创建泛型函数,后者可以创建泛型类。通过模板,你可以编写出高效且灵活的代码,比如实现一个通用的排序算法。 异常处理是C++中用于处理程序运行时错误的机制。当程序出现异常情况时,可以抛出一个异常,然后在适当的点捕获并处理这个异常。这使得代码能够优雅地处理错误,而不是让程序崩溃。实例中可能会有涉及文件操作或网络通信时可能出现的异常处理示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值