Codeforces Round #652 div2 总结 & 端午节前小结

QuickFix Java 实战(一)协议解析、环境搭建与首个应用 本文是QuickFix Java实战系列的第一篇,详细介绍了FIX协议的核心原理与QuickFix/J引擎的实战应用。内容涵盖FIX协议的标签化通信机制、QuickFix/J库的两种下载方法、协议定义文件解析,并通过一个完整的模拟订单发送示例,指导读者快速搭建首个FIX应用环境,实现消息生成与会话通信。 阅读详情

2020.6.24
连着三天熬夜和一连串要处理的事情已然让我的身体有点吃不消。我只是喜欢想题的那种冥想思路开阔的感觉,但是熬夜还是不能行的。端午节前就暂时不碰竞赛了,昨天晚上算是打完了最后一场比赛。今天补完d就去打打pubg放松一下。

昨天自闭了一天之后晚上紧接着又是开幕雷击。本来以为是22:35的比赛因为我记错时间晚了10min才到。上一秒还在津津有味地看着洛谷日报。qq叮叮叮地响了起来,我一看,朋友问我a会么,我这时候才意识到,完犊子,这都开始了我竟然不知道。吃了一惊的我显然并没有被这一番事情把原本地节奏打乱,而是不慌不忙地下楼拿我买的coco蜜桃红茶冻,不得不说真的蛮好喝的 。

好了,言归正传,看题。首先我打开cf的时候已经5k人过了A,我自闭了,这还怎么翻盘啊?

仔细看了看A,题意是问一个正n边形在xOy平面内能不能在旋转的时候保证有边分别平行于x和y。从大一之后我好久没碰几何数学了,还有点怀念高中手撕双曲线,椭圆这些图形的时候,现在有点陌生了哎,前几天老师还喊我去给高中学弟学妹辅导数学,我。。。。。咳咳,怀什么久,好好看题。好吧,这道题非常显然了,看的时候就想到那就转化为4条平行于坐标轴的边,旁边再塞其他边呗,不难发现塞进去多加的边上下都必须保持一致来维护原状态,那就。。。mod 4看能不能除掉就行了。然后我眼疾手快地把4写成了2wa了一发hhhh。不过好在改了之后过了,但这特么都排到1w名了这还怎么翻盘??
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (400 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        cin>>n;
        if(n % 4 != 0)cout<<"NO"<<endl;
        else cout<<"YES"<<endl;
    }
    return 0;
}

B题一般是离散数学的内容,一看果然是,看是给一个01串然后如果出现10这种就可以删掉两个其中任意一个字符,输出在若干次删除之后字典序最小的串。这题直接模拟肯定会t,肯定要有更好的算法。手动模拟了下,直接考虑分类讨论:
1)如果不存在10子串,那么就不存在删的可能,直接输出原字符串。
2)显然,开头连续的0和结尾连续的1不可能删除,无论中间间隔是什么,一定原本出现在答案中
3)中间,如果存在开头连续0和结尾连续1之外的子串,那么这些子串无论如何都可以被缩减至只剩一个0,因为要字典序最小嘛,一个1也是可以,但是不符合题意。
好了,有了这些就从两头分别扫一遍0和1,加到两个string里面去,记录下停止的下标,如果开头的0和结尾的1不接壤,那么拼接前后的时候中间就添加一个0,如果接壤就直接拼接前缀和后缀。也没那么难嘛,数组没开够re了一发,中间没考虑不加0的情况wa2了一发,然后ac,总算排名回到了6k。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (100000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int a[limit],b[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        string str;
        cin>>n>>str;
        string s = str;
        str = ' ' + str;
        int flag = 1;
        string ans,pre;
        rep(i ,1, n - 1){
            if(str[i] == '1' && str[i + 1] == '0'){
                flag = 0;
                break;
            }
        }
        if(flag){
            cout<<s<<endl;
            continue;
        }
        int fst,scd;
        per(i,1,n){
            if(str[i] == '0'){
                scd = i;
                break;
            }
            ans += '1';
        }
        rep(i ,1,n){
            if(str[i] == '1'){
                fst = i - 1;
                break;
            }
            pre += '0';
        }
        if(fst != scd){
            ans = pre + '0' + ans;
        }else{
            ans = pre + ans;
        }
        cout<<ans<<endl;
    }
    return 0;
}

然后开C,C题意是问有数列a和b,大小分别为n和k,a代表数字,bi代表可以从a拿的个数,b的和等于a的大小,对每个bi都有一个值,分配到的最小和最大的数字之和,问这些数字能分配之后b的值的和最大是多少。肯定不能暴力(废话)。刚看到的时候有点懵。既然说大小那排个序肯定是说的过去的,排着序就想到首先让最大值最大化,那么最大的k个值无论放在哪都是最大,先每个放一个,然后让bi - 1。还剩n-k个值,要让最小值最大化那么首先就要减少在铺垫过程中的损失,那就是从bi最小的开始放,然后统计一下答案就行了,结果又re了一发才过,我疯了,2e6明明可以用的int的结果爆炸了hhh。排名到3k了,还行,其实今天不掉分的任务已经完成了,再去看看d。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (1000000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int a[limit],b[limit];
int maxx[limit],minn[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        cin>>n>>k;
        rep(i ,1,n){
            cin>>a[i];
        }
        sort(a + 1, a + 1 + n,greater<>());
        rep(i ,1,k){
            cin>>b[i];
            maxx[i] = -INF;
            minn[i] = INF;
        }
        sort(b + 1, b + 1 + k);//反向sort一遍
        rep(i ,1,k){
            maxx[i] = minn[i] = a[i];
            --b[i];//捡一个
        }
        int it = 0;
        rep(i,1,k){
            if(b[i] > 0){
                minn[i] = a[k + it + b[i]];
                it += b[i];
            }
        }
        ll ans = 0;
        rep(i ,1,k){
            ans += (minn[i] + maxx[i]);
        }
        cout<<ans<<endl;
    }
    return 0;
}

D,1e9+7取模还多组答案一眼看出是递推或者dp预处理这样,然而11点左右打到D我脑子有些钝了不太能看得出来,查oeis也没查出来什么有用的信息。就去看E,E看了之后感觉是拓扑排序/容斥or费用流,然而这仨中拓扑排序我会一点,容斥和费用流我太菜不会啊(今天跳到一堆费用流的题应该说是疯狂暗示了,然而我直接关了),然后又去看D。手动模拟了一下发现从答案的贡献的增量应该是有一个周期为2的增长,然后中间每个增量过2个周期又开出一朵新的花。那就写写,结果最后也没有调出来,从10开始就不对了也没干交,结果今天早上看到群友的写的就发现我蠢了,旁边的树杈增量是2不是4,怪不得出锅,哎,昨天罚时吃了点亏,掉到4k了只涨了17分,如果按时好好做的话应该是2k左右,然而这能怪谁呢?re和看错时间还是自己的锅,下次注意吧。端午节前就这样,等会去吃饭,放松一下,节后备战牛客多校。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (3000000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
const ll mod = 1e9 + 7;
ll dp[limit],delta[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    dp[3] = dp[4] = 4;
    delta[3]  = 1;
    delta[4] = 0;
    rep(i ,5, 2e6){
        (dp[i] = dp[i - 1] + 2 * dp[i - 2]) %= mod;
        if(!delta[i - 1] && !delta[i - 2]){
            (dp[i] += 4) %= mod;
            delta[i] = 1;
        }
    }
    while(kase--){
        cin>>n;
        if(n == 1 || n == 2){
            puts("0");
            continue;
        }
        cout<<(dp[n]%mod)<<endl;
    }
    return 0;
}
ARS408毫米波雷达数据解析避坑指南:从硬件连接到Python处理 本文提供了ARS408毫米波雷达从硬件连接到Python数据处理的完整实战指南。针对串口通信不稳定、数据解析错误等常见问题,详细解析了硬件连接方案选择、串口数据高效读取策略、二进制协议解析的位操作技巧,并给出了坐标转换、目标跟踪及实时可视化的代码实现,帮助开发者快速搭建稳定的雷达数据处理流水线。 阅读详情

相关推荐

[c语言]用辗转相除法求最大公约数,递归和不递归两种

在c语言的学习中必然会遇到求两个数之间的最大公约数的题目,那么对于其他经典方法,最简便快捷的方式就是利用辗转相除法 辗转相除法又叫做欧几里得算法,目的是为了求两个正整数的最大公约数 定理:gcd(a,b) = gcd(b ,a%b) //在这里用(a,b)表示a和b的最大公约数证明:a可以表示成a = kb + r,则r = a %b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r //这里的"|"的意思是 :d是b的因数 ,d是a的因数 因此d...

ZZRBlogger的博客 1万+

Codeforces Round #652(div2)

A.FashionabLee 解题思路:以正四边形为基础,首先正方形时x轴平行边和y轴平行边之间直接连接,边数大于4时,把x轴平行边和y轴平行边拿开,观察将它们再次连接需要几条边就补几条边,此时得到的多边形必定满足条件,容易推知,构成8边形时恰好补四条边,补八条边构成12边形,每次补4条边,容易推知4的倍数即可满足 ac code: #include&lt;iostream&gt; using namespace std; int main() { int n,t; cin&gt;&gt;t; w

fusu123456789的博客 205

抖音视频数据抓取

最近经常有人问我抓取抖音视频的数据,问我一些很小白的问题,算法给他也不会用。 还是先抓包,获取需要的接口和参数,相关的算法在其它文章里面有描述。 搜索个视频看看 查看抓的包信息: 可以看到,这里是post请求...

2501_91048859的博客 3097

Codeforces Round #652 (Div. 2)

A - FashionabLee 题意 问你一个正n边形,您能否旋转它,让他的某一条边平行于x轴另一条边平行于y轴。 思路 要让他有平行于x轴的边的同时,也有平行于y轴的边。 那么我们只需要让他n边形的360/n是90度的倍数关系即可。画图验证更快。 #include&lt;bits/stdc++.h&gt; #define INF 0x3f3f3f3f #define DOF 0x7f7f7f7f #define endl '\n' #define mem(a,b) memset(a,b,sizeof(a

ACMer_WarYan 302

手机摄影新宠:In-line Hardware EIS如何让你的4K视频稳如鸡头(附实测对比)

本文深入解析了手机摄影中的In-line Hardware EIS(硬件级行内电子图像稳定)技术。通过对比传统软件EIS,阐述了其通过硬件管道实时处理实现极低延迟、减少画面裁切和有效抑制果冻效应的核心优势,并结合4K视频的日夜间实测,展示了该技术如何让手持拍摄的视频“稳如鸡头”,显著提升创作体验与成片质量。

tree的博客 994

炉石传说游戏系统拆解和部分系统分析

一.游戏综述 《炉石传说:魔兽英雄传》是一款由暴雪娱乐公司出品的策略类卡牌游戏。中国大陆地区的独家运营由网易公司代理。2014年3月13日全球同步正式运营。游戏背景设定于暴雪的魔兽系列,共十位魔兽中的角色作为十种不同的职业。而玩家要做的,就是根据己方现有的卡牌组建合适的卡组,指挥英雄,驱动随从,施展法术,与游戏好友或素不相识的对手一决高下。 二.游戏系统拆解图 三.游戏系统部分分析 1. 对战系统 (1)战斗准备 炉石传说开始前都需要配置至少30张卡牌作为出战卡组 .....

Jimmy72236的博客 4923

Codeforces Round 652 Div2

Codeforces Round 652 Div2 Round652的题感觉就是想到了就容易实现,代码不是很复杂。但就这变成了打的最差的一次。。这里记录一下BCD题。 B题 AccurateLee Lee was cleaning his house for the party when he found a messy string under the carpets. Now he’d like to make it clean accurately and in a stylish way… The

u014156276的博客 538

SC8F073单片机串口通信保姆级教程:从寄存器配置到完整收发Demo(附避坑指南)

本文详细解析了SC8F073单片机串口通信的寄存器配置与调试技巧,涵盖TXSTA、RCSTA和SPBRG寄存器的逐位设置,提供精确的波特率计算方法和工业级抗干扰策略。通过完整的收发Demo和避坑指南,帮助开发者快速掌握底层串口通信技术,适用于工业控制等严苛环境。

weixin_33724046的博客 484

Codeforces Round #652 (Div. 2) (补题ing)

A 很简单看是否能被4整除。 B 如果前面都是0,那么直接这段0是不可能消除的,接着遇到第一个1我们就开始从后面往前面找一个到最后一个0,因为不管是101010还是11110000最后都可以消除的只剩下一个0. 代码: 在这里插入代码片 ...

ohhhhh818的博客 361

基于STM32L4XX、HAL库的CH182H1以太网收发器(PHY)驱动程序设计

define PHY_REG_PHYSCR 0x12 // PHY特殊控制寄存器。#define PHY_REG_PHYSTS 0x10 // PHY状态寄存器。#define PHY_REG_PHYIDR 0x11 // PHY标识寄存器。#define PHY_REG_ID1 0x02 // PHY标识符1。#define PHY_REG_ID2 0x03 // PHY标识符2。

zhusl6688的博客 403

【AN7581】AN7581 SDK编译环境搭建操作说明

安装编译需要的工具包。

wgl307293845的博客 338

Codeforces Round #652 (Div. 2) C. RationalLee(思维,sort)

题目传送 题意: 给你n个整数(一些数可能为负),分给k个人(输入中给出每个人分多少个整数),现在每个人得到的价值为分给自己的整数中的最大值加上最小值。现在问所有人的获得的价值的最大值为多少? 思路: 我们先把n个整数和k个人所分的数量从小到大排个序。 1.现在我们要寻找这k个人中,有没有人只能得到一个整数,如果有的话,那么把最大的整数给他(因为他所能得到的价值是最大值的俩倍,所以最大的整数给他,对总体的价值肯定增长的越快) 2.把所有的只能得到一个数的人分配完了后,我们再排个序,使得剩下的人中分配的整数数

give it a try 458

手把手教你学Simulink--基于储能系统的建模与仿真场景:-锂电池储能系统充放电管理策略仿真

《锂电池储能系统充放电管理的Simulink建模与仿真》摘要 本文详细介绍了使用Simulink+SimscapeElectrical对锂电池储能系统进行充放电管理策略建模的全过程。从系统结构设计入手,重点阐述了锂电池模型、充放电控制器、热管理系统等核心模块的搭建方法,并提供了完整的仿真流程。文章详细说明了如何实现荷电状态管理、温度控制和功率限制等关键策略,通过仿真分析了电池电压、电流、SoC和温度等关键指标的变化规律。最后提出了基于仿真结果的优化建议,包括参数整定、算法改进等方面,为锂电池储能系统的安全高

MHD0815的博客 1万+

Codeforces Round #652 (Div. 2) D题

原题链接:https://codeforces.com/contest/1369/problem/D 思路:树形DP 源码: #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; const int mod = 1e9+7; const int maxn = 2000010; long long dp[maxn][2] = {0}; void init(){ for(long long i = 3;i&lt;m

鼎寒的博客 1317

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces Round #652 (Div. 2) E - DeadLee (贪心)

题目链接 思路: 把n个食物的需求need求出来。 每次都选择一个 a[i]-need[i] 最大的食物i 如果这个是非负的 就可以,否则必死。。 那么把喜欢的食物包含i的这批人 放在最后 ,无论前面的人怎么放 这些都是合法的。 然后把这批人喜欢的另一个食物的需求减减。 一直执行这个过程,直到m个人都搞完。 所有过程可以用线段树完成(全局最大值查询,单点更新) 最后倒序输出即可。 #include &lt;bits/stdc++.h&gt; using namespace std; typedef long

pubgoso的博客 1149

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Codeforces Round #652 (Div. 2) E - DeadLee (贪心)

#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;queue&gt; #include &lt;algorithm&gt; #include &lt;cmath&gt; #include &lt;vector&gt; #include &lt;map&gt; using namespace std; #define inf 0x7fffffff #define ll long lo.

逝者如斯夫,不舍昼夜 4840

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces Round 613(div2) 解题报告

2020.1.12 星期六 昨天上经济课真是刺激,本来没打算打这场div2的,后来看到群里好多人都去了,心里痒痒,正好在路上有了第一题的思路,就交上去了,全然不顾我已经比别人晚了45分钟以及我马上要去上economic of risk的事实,试试就逝世。 上课我习惯性地坐在了第一排,结果忘了我今天还有别的任务,结果电脑打开就开始做题了,后面的三位中国同学很好奇经济课上为什么会有计科学生乱入,纷纷投...

Stagflation的博客 558

codeforces-652【思维】

题目链接:点击打开链接 A. Gabriel and Caterpillar time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The 9-th grade s

_Somethingwill 519

Codeforces Round #652 (Div. 2) C. RationalLee

C. RationalLee time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Lee just became Master in Codeforces, and so, he went out to buy some gifts for his friends. He bought n integers, now it’s time to dis

张洪基 338

Codeforces 652B z-sort(水题)

http://codeforces.com/contest/652/problem/B B. z-sort time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A s

Shyazhut 560

Codeforces Round #652 (Div. 2) C,D

首先w[i]==1的情况肯定直接分配最大值。 对于剩余情况: 我如果我们预先把1-n的a[i]值都加上记为sm。 对于w[i]==x的情况:相当于: 选取一段区间[l,r] r-l+1=x, sm的值减去[l+1,r-1]区间内的a[i]。 我们的目的是让所有w[i]对应的区间,减去的值和最小。 显然,让w[i]最大的区间放在最前面,然后依次放下去,减的数和最小。否则只要变东任意一个区间,整体减去的区间会变大。 #include &lt;bits/stdc++.h&gt; usi...

bjfu170203101的博客 355

CODEFORCES ROUND #652 (DIV. 2)

A.FashionabLee 题目的大意是一个正多边形,问是否可以找到两条边,一条平行于x轴,一条平行于y轴。 首先,可以观察出,边数为4的倍数的多边形,假如以原点为中心,则是可以分为两条垂直于x的边,两条平行于y轴的边,其余的边可以均匀地分散在四个象限。但是,如果多添加的边不是4的倍数,那么这种状态就会被打破,反之仍然成立。所以边数是4的倍数的四边形是合题的。 对于其他情况,其实要找到这样的边,必然存在两条边相对的夹角的度数为90,我们就可以利用正多边形的内角来否定其他情况不成立。 #include&lt

Itandsoon的博客 239

codeforces div2 C题思路训练【C题好难,我好菜】

1017C The Phone Number: 构造数列使得LIS和LDS的和最小,定理已知LIS=L,LDS=n/L的向上取整,根据样例可以得到设置L=根号n,构造方法如样例 截断法构造,不用考虑边界: Show an example ofn=22: "' 19 20 21 22 15 16 17 18 11 12 13 14 7 8 9 10 3 4 5 6 1 2 "' 1 ...

weixin_30551947的博客 298

Codeforces Round #652 (Div. 2) F BareLee

#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;queue&gt; #include &lt;algorithm&gt; #include &lt;cmath&gt; #include &lt;vector&gt; #include &lt;map&gt; using namespace std; #define inf 0x7fffffff #define ll long l..

逝者如斯夫,不舍昼夜 6580

Codeforces Round #652 (Div. 2) A. FashionabLee

A. FashionabLee 题目链接-A. FashionabLee 题目大意 给你一个正nnn边(凸)多边形,当且仅当能旋转它,判断是否能使它至少有一条边平行于OXOXOX轴,并且至少有一条边同时平行于OYOYOY轴 解题思路 根据正方形(正四边形)可以推出,一个正多边形如果可以被相互垂直的两条对称轴分成相等的四份时,即可满足条件 所以只要该多边形边数是444的倍数,即nnn%4==04==04==0,输出YESYESYES 具体操作见代码 附上代码 #pragma GCC optimize(

Fiveneves的博客 364

Codeforces Round #652 (Div. 2) D. TediousLee 题解(思维)

题目链接 题目大意 给定有n层的树,按规律生成的该树,在其中寻找爪子,若找到的爪子里的节点若全是绿色,将其染成黄色,统计染成黄色的节点数量。 题目思路 感觉这个题目比较新颖。 首先你要发现每一颗n层的树是由一个n-1层的树和两个n-2层的树和一个根节点构成的,如5层的树 那么就可以递推出level[I]的"claw"数:cnt[i]=2∗cnt[i−2]+cnt[i−1] 每次取“claw”的时候都是先取最下面的,那么对于level[i],就可能出现取完level[i-1]和level[i-2]中的cla

hunxuewangzi的博客 334
上一篇: 洛谷P2568 GCD(欧拉线性筛 + 欧拉函数 + 前缀和)
下一篇: 洛谷P2014 选课(树形dp)
tiany7
博客等级 码龄8年 16粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值