SRM 552 Div1

Topcoder SRM 100 场计划 SRM 550 Div1 250 按题意模拟,注意判断边界是否被访问时,以后的路径不能算上 SRM 550 Div1 500 一道找规律题,打个表 SRM 550 Div1 1000 矩阵快速幂题,每个位置是该位置需要多少次才能转到目标态,先让他转到目标态的贡献减去之后,剩下就只剩下自己转圈的贡献了,我们发现这样的贡献在每个位置都相同,就可以算出最大旋转次数. 然后状态就是 有多少个需要两步到... 阅读详情

250pts

答案就是min(Rn∗(n+1)/6,Gn∗(n+1)/6,Bn∗(n+1)/6,R+G+Bn∗(n+1)/2)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
class FoxPaintingBalls
{
public:
    ll theMax(ll R,ll G,ll B,int n)
    {
        ll t=(ll)n*(n+1)/2,t1=t/3;
        ll ans=(R+G+B)/t;
        if(t1)ans=min(min(R/t1,G/t1),min(ans,B/t1));
        return ans;
    }   
};

500pts

分别按两个矩形上下分界和左右分界计算。
以左右分界为例,设L[i][j]表示第i列左边,两种花的个数差为j时两种花个数的最大和。R[i][j]表示第i列右边,两种花的个数差为j时两种花个数的最大和。然后枚举分界的列和左右的差。合并起来。
复杂度O(n5)

#include <bits/stdc++.h>
using namespace std;
int sum[31][31][2];
int n,m,ans;
int L[31][2100],R[31][2100];
int SUM(int x,int y,int tp)
{
    if(x<0||y<0)return 0;
    return sum[x][y][tp];
}
int cal(int x1,int y1,int x2,int y2,int tp)
{return SUM(x2,y2,tp)+SUM(x1-1,y1-1,tp)-SUM(x1-1,y2,tp)-SUM(x2,y1-1,tp);}
int get(int x1,int y1,int x2,int y2)
{return cal(x1,y1,x2,y2,0)-cal(x1,y1,x2,y2,1);}
int get1(int x1,int y1,int x2,int y2)
{return cal(x1,y1,x2,y2,0)+cal(x1,y1,x2,y2,1);}
void upd(int &x,int y){x=max(x,y);}
void cal(int x)
{
    for(int i=0;i<n;i++)
        for(int j=1;j<m;j++)
        {   
            sum[i][j][0]+=sum[i][j-1][0];
            sum[i][j][1]+=sum[i][j-1][1];
        }
    for(int i=1;i<n;i++)
        for(int j=0;j<m;j++)
        {
            sum[i][j][0]+=sum[i-1][j][0];
            sum[i][j][1]+=sum[i-1][j][1];
        }
    memset(L,-1,sizeof(L));
    memset(R,-1,sizeof(R));
    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++)
            upd(L[0][get(i,0,j,0)+n*m],get1(i,0,j,0));
    for(int i=1;i<m;i++)
    {
        memcpy(L[i],L[i-1],sizeof(L[i]));
        for(int j=0;j<n;j++)
            for(int k=j;k<n;k++)
                for(int t=0;t<=i;t++)
                    upd(L[i][get(j,t,k,i)+n*m],get1(j,t,k,i));
    }
    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++)
            upd(R[m-1][get(i,m-1,j,m-1)+n*m],get1(i,m-1,j,m-1));
    for(int i=m-2;i>=0;i--)
    {
        memcpy(R[i],R[i+1],sizeof(R[i]));
        for(int j=0;j<n;j++)
            for(int k=j;k<n;k++)
                for(int t=m-1;t>=i;t--)
                    upd(R[i][get(j,i,k,t)+n*m],get1(j,i,k,t));
    }
    for(int i=-n*m;i<=n*m;i++)
        for(int j=-n*m;j<=n*m;j++)
            if(fabs(i+j)<=x)
            {
                for(int k=0;k<m-1;k++)
                    if(L[k][i+n*m]!=-1&&R[k+1][j+n*m]!=-1)
                        ans=max(ans,L[k][i+n*m]+R[k+1][j+n*m]);
            }
}
class FoxAndFlowerShopDivOne
{
public:
    int theMaxFlowers(vector<string>flo,int dif)
    {
        ans=-1;
        n=flo.size();m=flo[0].size();
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                sum[i][j][0]=flo[i][j]=='L';
                sum[i][j][1]=flo[i][j]=='P';
            }
        cal(dif);
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                sum[j][i][0]=flo[i][j]=='L';
                sum[j][i][1]=flo[i][j]=='P';
            }
        swap(n,m);
        cal(dif);
        return ans;
    }
}cls;

900pts

先筛出maxDiff以内的素数。
设f[i][j]表示只用后i个素数可以得到的小于等于j的满足条件的数的个数。
那么f[i][j]=f[i+1][j]+∑f[i+1][jp[i]2k+1]
当p[i]*p[i]>j时答案由一个素数组成。可以直接二分出答案。
复杂度很迷。。。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N 1100000
#define M 41000000
#define mod 1000007
#define PA pair<int,ll>
ll n;
int p[N>>3],cnt;
bool ip[N];
ll find(int x,ll y)
{
    if(x==cnt+1||y<p[x])return 1;
    if((ll)p[x]*p[x]>=y)return upper_bound(p+1,p+1+cnt,y)-p-x+1;
    ll ret=find(x+1,y);
    for(ll i=p[x];i<=y;)
    {
        ret=ret+find(x+1,y/i);
        if((i*=p[x])>y)break;
        i*=p[x];
    }
    return ret; 
}
class HolyNumbers
{
public:
    ll count(ll bon,int mx)
    {
        n=bon;
        for(int i=2;i<=mx;i++)
        {
            if(!ip[i])p[++cnt]=i;
            for(int j=1;j<=cnt&&i*p[j]<=mx;j++)
            {
                ip[i*p[j]]=1;
                if(i%p[j]==0)break;
            }
        }
        return find(1,n);
    }
}cls;
AGM Supra软件从零到一:国产CPLD工程创建全流程实战解析 本文详细解析了AGM Supra软件在国产CPLD开发中的全流程实战操作,从工程创建到代码开发、编译调试,再到高级技巧与疑难排解。特别对比了Supra与Quartus的差异,提供了工程路径管理、Quartus项目转换、HDL代码规范等实用技巧,帮助开发者高效完成CPLD项目开发。 阅读详情

相关推荐

基于555定时器的D类功放设计:从PWM原理到无反馈电路实践

D类功放(数字功放)是一种高效率的音频放大技术,其核心原理是脉冲宽度调制(PWM)。它将输入的模拟音频信号转换为一系列高速开关的脉冲,通过控制功率开关管(如MOSFET)的通断,再经低通滤波器还原放大后的音频。相比传统AB类功放,其转换效率通常超过90%,显著降低了热能损耗。这项技术在追求高能效和小型化的现代音频设备中价值凸显,广泛应用于有源音箱、汽车音响和便携式设备。本文聚焦于一种独特的实现方案:以经典的555定时器芯片为核心,构建一个无整体负反馈的D类功放。通过剖析其PWM调制器、FET电压-电流转换级

weixin_30162121的博客 221

SetAndSet(SRM545-div1-3)

见:http://www.strongczq.com/2012/06/srm545-div1-3-setandset.html

strongczq的专栏 872

STM32F4使用CUBEMX ADC定时采样+DMA

STM32、FFT、ADC、TIM

m0_62379750的博客 4222

SRM545

275 StrIIRec 题意:求一个字典序最小的排列满足他的字典序>=minStr并且逆序>=minInv,n<=20分析:枚举第一个不同的位置,然后从小到大暴力填,判断一下逆序是否足够500 Spacetsk 题意:求有多少个K元组,满足0≤x≤L,0≤y≤H0\leq x\leq L,0\leq y \leq H并且它们在一条直线上,且这条直线和x轴有非负整数交点L,H,K≤2000L

Your magic is mine 582

Java后端中的链路追踪:使用OpenTelemetry实现全链路监控

在现代的微服务架构中,链路追踪是监控和优化系统性能的关键技术。通过链路追踪,我们可以跟踪请求在系统中的流转,识别性能瓶颈,定位问题根源。本文将介绍如何在Java后端应用中使用OpenTelemetry实现全链路监控,包括具体的实现步骤和代码示例。通过集成OpenTelemetry,您可以实现全面的链路追踪,帮助您识别瓶颈和潜在问题,从而提升系统的可靠性和用户体验。OpenTelemetry是一个开源项目,旨在提供统一的工具集来收集、处理和导出应用程序的遥测数据,包括跟踪、度量和日志。

聚娃科技开发者博客 1727

KV STUDIO的安装与实践(一)

KV STUDIO是一种软件开发工具,用于编写、调试和管理基于Key-Value(键-值)存储的应用程序。KV STUDIO提供了一个集成开发环境(IDE),使开发人员可以方便地创建和管理键-值数据库,并编写逻辑和业务规则来操作和查询这些数据。它支持多种编程语言和平台,并提供了丰富的API和工具来简化开发过程。使用KV STUDIO,开发人员可以快速构建高效、可靠的键-值存储系统,并实现各种应用程序,如缓存、会话管理、配置存储等。本次使用plc进行案例讲解,结合小编的亲身经历,仅供参考!

weixin_47514459的博客 6353

[容斥] Topcoder SRM div1-3 12004. SetAndSet

把所有数取反,转换成分成两个集合,集合或值相同。容斥一下每次枚举哪些位不满足条件,用并查集维护一下要在同一个集合的联通块就好了#include <cstdio> #include <iostream> #include <algorithm> #include <vector> #include <cstring>using namespace std; class SetAndSet{

CE玩家 1001

本科双非的计算机考研择校注意点——经验贴

一战一志愿上岸某211的电子信息专硕。之前在某乎也发过帖子。但现在用优快云,所以把相关的心得再发出来仅供大家参考。 首先,我认为最重要的是你为什么要考研? 不管你是为了混一个文凭将来好进大厂,还是为了真正搞学术或者学知识,你要知道你自己的目标,只有坚定自己的目标,才有动力去走完这段复习的历程。真正的考研,是很苦的。如果你是为了逃避大四面临的就业才选择考研,并且还浑浑噩噩不当回事,那我劝你放弃,不如踏踏实实学点技术去找实习。那从我自己出发,我是认为自己本科双非院校且自己四年间没有学到什么专业方面的技能,

m0_56698268的博客 3164

SRM552 Div1 Medium

Fox And Flower Shop Div One 题意: 给定一块N×MN×MN×M的田地,每格田地上只可能是花LLL、PPP,空地(.)这三种可能。 找出两块无交集(不同时覆盖同一块土地)的矩形区域,满足这两块区域内|L的数量−P的数量|≤K|L的数量−P的数量|≤K|L的数量-P的数量|\le K,且使得区域内花的数量之和最大。 2≤N,M≤30,0≤K≤9002≤N,M≤30,...

Caristra的博客 392

【YOLO11改进 - C3k2融合】C3k2融合动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务

【YOLO11改进 - C3k2融合】C3k2融合动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 517

基于YOLOv8的农作物病虫害检测系统设计与实现

国内如中国农业大学的科研团队采用改进的Faster R-CNN模型对小麦病害进行检测,取得了较好的效果。农作物病虫害是影响农业生产的重要因素之一,每年因病虫害导致的农作物减产高达20%-40%。YOLO(You Only Look Once)系列算法作为目标检测领域的代表性模型,以其高效、准确的特点在众多领域得到广泛应用。YOLOv8作为该系列的最新版本,在精度和速度上都有显著提升,非常适合农作物病虫害检测这类需要实时处理的应用场景。然而,现有研究仍存在一些不足:一是模型复杂度高,难以部署到移动设备;

YOLO 794

Topcoder SRM552 Div1 500

int FoxAndFlowerShopDivOne::theMaxFlowers(vector flowers, int maxDiff) { const int NN=1000; int n=flowers.size(); int m=flowers[0].size(); int l[32][32],p[32][32]; int dpi[32][2000],dpj[32][2

Wo xi Meiz 873

ZYNQ PS-PL数据交互方式总结

一,中断 二,IO方式:MIO EMIO GPIO 三,BRAM或FIFO或EMIF (1)通过BRAM实现PL/PS之间交互 PS 的配置如下图所示。使能 M_AXI_GP0 口,将 FCLK_CLK0 设为 100MHz,使能 PL 至 PS 的中断。 AXI BRAM Controller IP 核连接 PS 的 M_AXI_GP0 口和 BRAM,完成 AXI 接口至 BRAM 接口的转换。 添加BRAM,将BRAM设置为双口RAM,将PORTA与AXI B...

wangjie36的博客 1万+

[DP] Topcoder SRM 552 DIV1 Hard. HolyNumbers

fi,jf_{i,j} 表示前 ii 个质数,能组成小于等于 jj 的方案数 转移简单,但是记忆化会爆内存 倒过来考虑, fi,jf_{i,j} 表示用了后 ii 个质数的方案数,那么当 p2i>jp_i^2>j 时就可以用二分查找解决// BEGIN CUT HERE // END CUT HERE #include <vector> #include <list> #inclu

CE玩家 606

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TC SRM 552 DIV1 100PT(数论)

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 题目:对于一个数,如果所有的素数要么不是他的因子,要么就得小于某个上界并且这个数拥有奇数个这个素因子。 比如16就不满足,2^4,4为偶数。问1---UPTO范围里有多少个这样的数。 首先把范围内的素数表打出。 然后开始搜

窝不是爱酱,喵~~~~ 1682

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TC SRM 552 DIV2

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 悲剧的一场,断网加手贱。。。 250PT:FoxAndFlowerShopDivTwo 水题,一个矩形中有一个格子不能取,取出一个子矩阵,包含'F'最多 直接考虑限制格子的4个方向,暴力 #include #incl

窝不是爱酱,喵~~~~ 1712

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SRM 552 DIV2

250pt 题意: 给定二维格点图和一个在格点图中的禁止点,每个格点包含0或1,求最多有多少个1被包含在一个不包含在禁止点的矩形里。 分析: 以禁止点所在行,列为边界,枚举,共4种情况。 View Code #include <cstdlib> #include <cctype> #include <cstring> ...

dasu9538的博客 128

srm 552 div2

尝试着做了一场TC,就是环境有点不太习惯,提交编译等都有点别扭,不过还好,多做几场应该就能适应的 250pt: 水题,我是六个for循环暴力枚举矩形求解 500pt: 题意搞了好久。。。 有很多个由球组成的三角形,给你三种颜色去染色,规定有接触的两个三角形的颜色不能相同,三种颜色可以染的次数都有一个上限值,最后问你最多可以染多少个边长为N的三角形。 手画一下就可以发现:只要最上面的三个

努力奋斗才能梦想成真 1105

SRM 552 div2

250pt水题   500pt  分两种情况, 1、RGB中最小值足够大,制约因素是R+G+B的值,这种情况下结果为(R+G+B)/tot 2、R+G+B足够大,制约因素是RGB中最小值不够大,这种情况下结果为m/c 两者取最小值 第一种情况,R=7,G=6,B=6,最小值6足够画两个三角形,但是R+G+B=19不够画两个三角形  第二种情况R=1000000000,G=6,B=6,R+...

weixin_34019929的博客 149

topcoder srm 552

div1 250pt:   题意:用RGB三种颜色的球摆N层的三角形,要求相邻的不同色,给出RGB的数量,问最多能摆几个   解法:三种颜色的数量要么是全一样,要么是两个一样,另外一个比他们多一个,于是可以分类讨论:对于数量全一样的,直接算;对于另外的,我们可以先不考虑多出来的那一个,也是正常放,然后看最后剩下的位置能不能放完所有多出来的那一个,这个可以二分。 1 // BEGIN...

weixin_30535043的博客 182

<-这是目录-> SRM div1 hard solutions(52)

刚从百度空间搬过来。。百度空间没有置顶功能差评啊。。。 从599向后,如果有做那场SRM,会写前两题的简单题解。 (前提有做出来第三题233333,因为此帖本意是第三题练习记录做过哪些,tc你们懂得。。。) practice room练习的话不准备做前两题。 599 598 597 596 595 594 593 592 591 590 5

Merlininice的专栏 2514

TC做题笔记

SRM593 Div1Medium——May The Best Pet Win(bitset优化) Description 给出n个元素取值的max、min,把这n个元素分割成两个集合,求如何分割使两个累和差的最大值最小 \(n\le 50,min,max\le 10000\) Solution 把题意化归成式子,就是 求\(max(A\sum{max}-B\sum{min},B\sum{ma...

weixin_34161029的博客 106
上一篇: SRM 565 div1
下一篇: SRM 553 Div1
make_it_for_good
博客等级 码龄11年 13粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值