<胡策day> 10.3 听说这套题很简单

SIwave学习记录:电热耦合仿真 SIwave电热耦合仿真 阅读详情

这里写图片描述
这里写图片描述

T1 叫第二题的第一题

直接算就好。

emmm。。我的方法是把第一个日期往后取整,再把第二个日期往前取整,最后答案加上两个日期中间的日期差qwq。

代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;

#define ll long long

char s[110];
int Y1=-1,Y2=-1,m1=-1,m2=-1,d1=-1,d2=-1,h1=-1,h2=-1,M1=-1,M2=-1,s1=-1,s2=-1;
int md[14]={0,31,28,31,30,31,30,31,31,30,31,30,31};
ll ans=0;

ll year(int a,int b) // 左闭右开
{
    ll c=0;
    for(int i=a;i<b;++i)
    {
        if(i%4==0&&i%100!=0) c+=366;
        else if(i%400==0) c+=366;
        else c+=365;
    }
    return c*24*60*60*1000;
} 
ll month(int a,int b,int k)
{
    ll c=0;
    for(int i=a;i<b;++i)
    {
        c+=md[i];
        if(i==2&&k) ++c;
    }
    return c*24*60*60*1000;
}
ll day(int a,int b)
{
    ll c=b-a;
    return c*24*60*60*1000;
}
ll hour(int a,int b)
{
    ll c=b-a;
    return c*60*60*1000;
}
ll minute(int a,int b)
{
    ll c=b-a;
    ll k=c*60*1000;
    return k;
}
ll second(int a,int b)
{
    return (b-a)*1000;
}

int main()
{
    freopen("two.in","r",stdin);
    freopen("two.out","w",stdout);
    gets(s);
    int l=strlen(s),num=0;
    for(int i=0;i<=l;++i)
    {
        if(s[i]>='0'&&s[i]<='9') num=num*10+s[i]-'0';
        else{
                if(Y1==-1) Y1=num;
                else if(m1==-1) m1=num;
                else if(d1==-1) d1=num;
                else if(h1==-1) h1=num;
                else if(M1==-1) M1=num;
                else if(s1==-1) s1=num;
                num=0;
        } 
    }
    gets(s);
    l=strlen(s),num=0;
    for(int i=0;i<=l;++i)
    {
        if(s[i]>='0'&&s[i]<='9') num=num*10+s[i]-'0';
        else{
                if(Y2==-1) Y2=num;
                else if(m2==-1) m2=num;
                else if(d2==-1) d2=num;
                else if(h2==-1) h2=num;
                else if(M2==-1) M2=num;
                else if(s2==-1) s2=num;
                num=0;
        } 
    }       
    ll num1=0,num2=0,k1=0,k2=0;
    if(Y1%4==0&&Y1%100!=0) k1=1;
    if(Y1%400==0) k1=1;
    if(Y2%4==0&&Y2%100!=0) k2=1;
    if(Y2%400==0) k2=1;
    if(Y1!=Y2) 
    {
        num1=second(0,s1)+minute(0,M1)+hour(0,h1)+day(1,d1)+month(1,m1,k1);
        num1=year(Y1,Y1+1)-num1;
        num2=second(0,s2)+minute(0,M2)+hour(0,h2)+day(1,d2)+month(1,m2,k2);
        ans=num2+num1+year(Y1+1,Y2);
    }
    else{
            if(m1!=m2)
            {
                num1=second(0,s1)+minute(0,M1)+hour(0,h1)+day(1,d1);
                num1=month(m1,m1+1,k1)-num1;
                num2=second(0,s2)+minute(0,M2)+hour(0,h2)+day(1,d2);
                ans=num1+num2+month(m1+1,m2,k2);
            }
            else{
                     if(d1!=d2)
                     {
                          num1=second(0,s1)+minute(0,M1)+hour(0,h1);
                          num1=day(d1,d1+1)-num1;
                          num2=second(0,s2)+minute(0,M2)+hour(0,h2);
                          ans=num1+num2+day(d1+1,d2);
                     }
                     else{
                             if(h1!=h2)
                             {  
                                  num1=second(0,s1)+minute(0,M1);
                                  num1=hour(h1,h1+1)-num1;
                                  num2=second(0,s2)+minute(0,M2);
                                  ans=num1+num2+hour(h1+1,h2);  
                             }
                             else{
                                      if(M1!=M2)
                                      {
                                           num1=second(0,s1);
                                           num1=minute(M1,M1+1)-num1;
                                           num2=second(0,s2);
                                           ans=num1+num2+minute(M1+1,M2);
                                      }
                                      else{
                                              if(s1!=s2){
                                                   ans=second(s1,s2);
                                              }
                                      } 
                             }
                    }
            }
    }
    printf("%lld",ans);
    return 0;
}

这里写图片描述

T2 你做过接水问题吗?

请百度 codevs 接水问题。

贪心,每次从堆中弹出当前打sif总时间最小的那个位置,加上当前人所用的时间再扔进去。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
#define ll long long

int M,N;
int time[100010]; 

priority_queue<ll,vector<ll>,greater<ll> > q;

int main()
{
    freopen("death.in","r",stdin);
    freopen("death.out","w",stdout);
    scanf("%d%d",&N,&M);
    for(int i=1;i<=N;++i)
    {
        scanf("%d",&time[i]);
        if(i<=M) q.push(time[i]);
    }
    if(M>N) 
    {
        printf("%d",0);
        return 0;
    }
    for(int i=M+1;i<=N;++i)
    {
        ll a=q.top();
        q.pop();
        a+=time[i];
        q.push(a); 
    }
    ll a=q.top();
    printf("%lld",a);
    return 0;
}

这里写图片描述

T3 出题人想要的不是dp

首先,这并不是一个dp题,而是一个贪心题。(dp会T)

首先说一下dp。

可以打一个裸的01背包问题。因为只有1 * 3和1 * 2的物品,所以在数量都够的前提下,我们是可以一直往里塞直到背包全部填满或是只剩下一个空为止。数量不够的话也可以一直往里填。貌似是正确的。

虽然这道题dp可以水到60分,但是其实是有反例的。(不知道为什么没有被卡)

如:

1
2 5 0 3
3 4 5

dp输出12,但答案其实是9,因为画出来后是这样:

这里写图片描述

其实这个黄的是没法放进去的,也就是说,如果N或M为2,而另一个%3==2,同时1*2的块又不够的时候,dp是会被卡掉的。

正解 前缀和+枚举

因为数据范围太大 、同时物品的体积只有1 * 2和1 * 3两种情况,考虑枚举更新。

采用前缀和进行优化。先对物品按照价值从大到小排序,再计算可以放入体积为3

的物品的最大数量(因为3很特殊)。注意特判剩余体积为4但是不能放3的情况(也就是上面的反例)。

另外还要注意到所放的最大物品数不能超过你所拥有的物品数。

代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;

int N,M,T,n1,n2;
int w1[100010],w2[100010],sum1[100010],sum2[100010];

bool cmp(int a,int b){ return a>b ; }

int main()
{
     freopen("eyesight.in","r",stdin);
     freopen("eyesight.out","w",stdout);
     scanf("%d",&T);
     while(T--)
     {
         scanf("%d%d%d%d",&N,&M,&n1,&n2);
         for(int i=1;i<=n1;++i)
             scanf("%d",&w1[i]);
         for(int i=1;i<=n2;++i)
             scanf("%d",&w2[i]);
         sort(w1+1,w1+n1+1,cmp);
         sort(w2+1,w2+n2+1,cmp);
         for(int i=1;i<=n1;++i) sum1[i]=sum1[i-1]+w1[i];
         for(int i=1;i<=n2;++i) sum2[i]=sum2[i-1]+w2[i];
         int size=N*M,maxn2,maxn3,ans=-1;
         if((N==2&&M%3==2)||(M==2&&N%3==2)) maxn3=(size-4)/3;
         else maxn3=size/3;
         maxn3=min(maxn3,n2);
         for(int i=0;i<=maxn3;++i)
         {
              maxn2=min((size-3*i)/2,n1);
              ans=max(ans,sum1[maxn2]+sum2[i]);
         }
         printf("%d\n",ans);
     }
     return 0;
}
机器学习【学校智慧食堂及其应用】 本文主要介绍机器学习【智慧食堂及其应用】 阅读详情

相关推荐

Microsoft Speech SDK 使用过程中女声改为男声遇到的问题

问题将女生改为系统自带男声(Kangkang)根据上面的步骤我的播放声音是改变了,但是还是女生,是yaoyao的女生。是因为下面注册表路径中VoicePath这个配置的路径指向了yaoyao的文件。 如何使用Microsoft Speech SDK,请参考https://blog.csdn.net/daoming1112/article/details/77542562 使用系统自带男声语音,不需...

u012161365的博客 7538

Contest Hunter - OVOO

题意: 给出一颗有根树,每次可以从树上取包括根节点的一个连通块; 定义连通块的权值为块内边的权值之和; 询问第k小的连通块的权值是多少; n 此题为CH弱省胡策#1T3; 题解: PoPoQQQ大爷好神! 这道题也是利用A*搜索来求K大值,但是状态比较难以表示; 先考虑怎么搜索,对于一个已经选完了的点集,下一次可能再选的点有哪些? 可能是上一次选的点的儿子,也可能是回溯

140142 1699

顺序功能图基本结构

顺序功能图(Sequential Function Chart,SFC)是一种用于描述工业控制系统中顺序控制流程的图形化编程语言,广泛应用于PLC(可编程逻辑控制器)编程。其核心思想是将复杂的控制流程分解为多个有序的步骤,通过逻辑条件实现步骤间的切换。顺序功能图通过图形化的方式简化了复杂控制逻辑的设计,尤其适用于需要严格顺序控制的工业自动化场景。[初始步] → 转换条件1 → [步1] → 转换条件2 → [步2] → ...[步X] → → [步B] → 转换条件B → → [合并步]

ayingqin1的博客 1224

Contest Hunter - IHHH

题意: 给出n个字符串和m个询问; 每个询问有l,r和一个字符串; 查询[l,r]区间中的所有是询问字符串的子串的最大长度; n 此题为CH【弱省胡策】 #1 T2; 题解: 一道好题,感觉正解说起来只是一句话但是真是很有道理。。 就是说:将询问拆成log个区间,对线段树每个结点建AC自动机分别处理; 这样每个询问都只询问了log个区间,每个字符串也只被log个结点覆

140142 1899

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 387

Contest Hunter - Handle

题意: 令b[i]=∑C[j][i]*a[j]; 0 现给出b[i],求a[i],取模998244353; 此题为ch【弱省胡策】Round #5比赛的T3; 题解: 生成函数多项式啥的。。真是一大毒瘤; 首先把组合数拆开,得到b[i]=∑(j!/(j-i)!/i!)*a[j];(i 同乘i!,b[i]*i!=∑a[j]*j!/(j-i)!;(i 再定义B

140142 1271

【ESD专题】从原理上分析TVS管PCB Layout的经验法则

我们常常会听到的一些经验法则,按这些经验法则去做,一般也不会有什么问题,但是到底是为什么呢? 没有从原理上分析和证明的时候,往往在Layout之后还要担心实际测试结果怎么样。或是在实际测试出问题后,根本无法进行分析,难道说修改一个版本就好了?那要从哪里修改呢?也无从下手呀。...

一点硬件 1446

20170319胡策

...

wumingshi 441

302.QoS实现工具之MQC

QoS 技术可以对网络中报文进行分类处理,根据优先级提供不同的差分服务,如何实现这种差分服务呢?我们有一种强大的配置方法 - 模块化 QoS 命令行 MQC(Modular QoS Command-Line)。下面就来介绍一下 MQC。

迷逝 1393

【数据集】CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

WW、forever的博客 400

关于第k短路的学习(可持久化可并堆) 例题:poj2449

原来做第k短路用的是A*,但是后来发现A*对于k特别大的时候不好用,就去学了一种更高级的算法 学习资料:余鼎力写的第k短路和堆的可持久化 方法: 对于图G,建立一个以终点t为起点的最短路径构成的最短路径树(就是反着跑一遍最短路,然后对于一个不为终点的点v,v到终点t的最短路径上(任选一条)v的后继结点为v的父亲,就形成了一棵树),然后对于所有点,定义其不在最短路径树上的出边的

L_0_Forever_LF的专栏 2918

5G Multicast/Broadcast Services(MBS) (七) MBS广播DRX

当处于RRC_IDLE或RRC_INACTIVE或RRC_CONNECTED 状态时,如果为 G-RNTI 配置了broadcast DRX,则允许MAC entity使用broadcast DRX 操作不连续地监听此G-RNTI的PDCCH;此 G-RNTI 的 drx-onDurationTimerPTM 或 drx-InactivityTimerPTM 正在运行的时间,也就是。long DRX周期drx-LongCycle-PTM和drx-StartOffset-PTM定义DRX周期开始的子帧。

asd199086的博客 391

Process Hunter by Ms.Rem

Hidden processes detector .http://wasm.ru/baixado.php?mode=tool&id=351

Linhanshi Blog 1755

Camera2Demo

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

hunter u

test11

Hunter 8253

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[洛谷P3769][CH弱省胡策R2]TATT-K-D树

CH弱省胡策R2]TATT题目描述四维空间真是美妙。现在有n个四维空间中的点,请求出一条最长的路径,满足任意一维坐标都是单调不降的。 注意路径起点是任意选择的,并且路径与输入顺序无关(路径顺序不一定要满足在输入中是升序)。路径的长度是经过的点的数量,任意点只能经过一次。输入输出格式输入格式:第一行一个整数n。 接下来n行,每行四个整数ai,bi,ci,di。表示四维坐标输出格式:一行一个整数,表示最

「嫌われ者のフィロソフィ」 949

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Contest Hunter 弱省胡策Round #1 OVOO

求第k小的含1号节点的联通块,可以理解为第k小的点集,对于一个点集,他有两种方式拓展,一个是将他的一个边缘节点替换成点集里其他节点延伸出去的最小的边的tail,一个是在点集里新加入一个边缘节点延伸出去的最小的边的tail。 于是我们维护一个点集的优先队列,对于当前的点集按以上两种方式拓展,塞进优先队列里面。 怎么才能知道一个点集边缘节点延伸出去的边的最小值呢?可以打一个可持久化的可并堆

L_0_Forever_LF的专栏 1296

<胡策day> 10.26 T1 最大子串权值

*PS:一上来第一题就是一个思维题qwq,emmm…考场上只打了个暴力,果断60分滚粗。%%那些在考场上打出正解的dalao。                          题目来源:钟长者(侵删)                【问题描述】 你是能看到第一题的 friends 呢。

Loi_Mapleleaf的小池 822

<队内胡策> 2017.10.24 求逆序对+表达式计算+贪心+Bfs+最短路、exgcd

*PS:为什么我t5死活都调不出来呢(눈‸눈) T1:原创,参考noip火柴排队。 T2: codevs 2178 表达式运算Cuties (我自己找的) T3:Codeforce867E(865D) Buy Low Sell High T4: USACO 2015 DEC Gold  不明链接1   不明链接2 ( 该网站不提供在线测评,仅提供数据下载。考试使用原数据。) T5

Loi_Mapleleaf的小池 594

<考试题> codevs 5251 WYW的数字金字塔

*PS:原来暴力优化优化是可以过的么qwq,ljoj 数据手动测并没有T。。。最后默默的吐槽一句,附上一个金字塔的图是因为怕我们没有见过吗。。。go to the problem题目描述 Descriptionwyw有一个数字n,他要用这个数字写出一个数字金字塔。wyw用随机数生成器生成了一个小于n且大于1的正整数k。wyw找来一张白纸,他在白纸的最低端写下了这个数字n。wyw在n的上面紧挨着写下了

Loi_Mapleleaf的小池 545

<学习笔记?>考试与做题的注意事项总结。

数组:1.数组一定不要开太大,int 型 128MB~3200万,256MB~6400万,注意char 占1字节,long int 占4字节,long long 占8字节 ,double 占8字节 2.数组下标中有减法的话一定要注意判边界,不能访问负数下标(windows下不会报错)

Loi_Mapleleaf的小池 533

<互测 day> 11.6 T1 谜团 (mituan)

*PS: 没开long long被卡掉45分,果然出题人的话都不可信QAQ。。(学傻了)与zqsz的互测题 T1 原题 POJ 1845【题目描述】谜团,是夜魇军团一名强大的战士。他来自远古,是一种不可思议的重力生命体,是来自原始黑暗的扭曲声音,在宇宙中的第一丝光线诞生前就存在的深渊化身。他能动用深渊之力将生物的身体污染,使之转化为自身的碎片“虚灵”。 “虚灵”为谜团所控,拥有一定的战斗力。更为恐

Loi_Mapleleaf的小池 532

<胡策day> 10.30 T1 小学数学

*PS:突然被小学数学弄得怀疑人生(⊙_⊙)…老师等等我ヾ(>Д<;))))….. 先科普一下 (百度百科) 整除 [zhěng chú] 若整数a除以非零整数b,商为整数,且余数[1] 为零, 我们就说a能被b整除(或说b能整除a),a为被除数,b为除数,即b|a(“|”是整除符号),读作“b整除a”或“a能被b整除”。a叫做b的倍数,b叫做a的约数(或因数)。整除属于除尽的

Loi_Mapleleaf的小池 518

<队内胡策>2017.10.18 (DP+tarjan、SPFA+字符串+脑洞、数学)

*这可是我们组自己从网上找题出的一套考试题,虽然有些水,但是个人认为还是很不错啦(〃’▽’〃)!!尤其是我的题面(≖ᴗ≖๑) 多图预警!!

Loi_Mapleleaf的小池 499

<考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)

*PS:wzd、dcx与cgold他们组的考试题%%%。。。emmmm,本人太懒qwq,题解也写不明白,大部分抄的考试题解。侵删。 题目描述 Description 公元 2044 年,人类进入了宇宙纪元。L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球。小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流

Loi_Mapleleaf的小池 478

<考试题> bzoj 1821 部落划分 (二分、最小生成树)

*PS:竟然CCCCCE了(눈‸눈) go to the problem Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的。 不过好消息是,聪聪得到了一份荒岛的地图。地图上标注了N个野人居住的地点(可以看作是

Loi_Mapleleaf的小池 459
上一篇: <胡策day> 11.1 数学+数学+二分、并查集
下一篇: <互测 day> 11.6 T1 谜团 (mituan)
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值