首页 > 其他分享 >2024.5.16

2024.5.16

时间:2024-05-16 21:53:38浏览次数:22  
标签:itn 2024.5 16 int cin long st

2024.5.16 【就算一次也好,我想在这颗星球上尽情奔跑。】

Thursday 四月初九


数据结构

P4588 TJOI2018 数学计算

//2024.5.16
//by white_ice
//P4588 [TJOI2018] 数学计算
#include<bits/stdc++.h>
using namespace std;
#define itn long long 
#define int long long 
constexpr int oo = 400005;

int n,mod;

itn t;
itn st[oo],f;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    cin >> t;

    while (t--){
		cin >> n >> mod;
		for(f=1;f<=n;f<<=1);

		fill(st+1,st+f+n+2,1);

        itn tmp;
		for(int x,k,i=1;i<=n;i++){
			cin >> x >> k;
			if(x==1){
                st[i+f]=k%mod;
                tmp = i+f;
            }
            else{
                st[k+f]=1;
                tmp = k+f;
            }
			while(tmp>>=1)
                st[tmp]=st[tmp<<1]*st[tmp<<1|1]%mod;
			cout << st[1] <<'\n';
		}
	}
    return 0;
}

数学成分很大

题目简单易理解

注意是将x变化,

输出其modM的值

x自身不参与模运算改变

所以维护每个乘数,

对于后面加入的同时修改。


P1486 NOI2004 郁闷的出纳员

//2024.5.16
//by white_ice
//P1486 [NOI2004] 郁闷的出纳员
#include<bits/stdc++.h>
#include<bits/extc++.h>
using namespace std;
using namespace __gnu_cxx;
using namespace __gnu_pbds;
#define itn long long 
#define int long long 
constexpr int oo = 400005;

int n,minf;
char x;
itn k;

struct nod{
    int v,id;
    nod(int a,itn b){v = a,id = b;}
    bool operator > (nod b)const {return v==b.v?id>b.id:v>b.v;}
};

tree<nod,null_type,greater<nod>,rb_tree_tag,tree_order_statistics_node_update> ned,st;

int out;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    cin >> n >> minf;
    itn up = 0;
    for (itn i=n;i>0;i--){
        cin >> x;
        cin >> k;
        switch (x){
            case 'I':
                k+=up;
                if (k<minf)
                    break;
                else st.insert(nod(k,i));
                break;
            case 'S':
                up+=k;
                minf +=k; 
                st.split(nod(minf,-1),ned);
                out += ned.size();
                break;
            case 'A':
                up-=k;
                minf -=k;
                break;
            case 'F':
                if (k>st.size())
                    cout << -1 <<'\n';
                else cout << (st.find_by_order(k-1)->v-up) <<'\n';
        }
    }
    cout << out ;
    return 0;
}

标签里写得很清楚

就是一个平衡树的应用

反正我是打不出来这抽象东西

(pb_ds润了)

通过将题目中的加减工资转变为最低工资改变,

巧妙的实现了对树上元素加减的省略。


标签:itn,2024.5,16,int,cin,long,st
From: https://www.cnblogs.com/white-ice/p/18196817

相关文章

  • 5.16
    糖丸了,其实是在为自己闲话创造头图。喜报,终于找回了原来闲话的感觉(?)果然还是得自己说一大堆没用的话才好啊,不能只放图(好可爱啊(bzoj4399:魔法少女LJJ非常好题,使我调到死。现在没调完,但是其实就是线段树合并,动态开点,并查集,普通线段树区间查询等等的集合,全放一起就完事......
  • 一个小小的经验帖——建于5.16
    1.常变量和宏定义常量和宏定义的常数都是用来表示在程序执行过程中不会改变的值,但它们之间有几点区别:作用域和命名空间:常量:使用 const 关键字定义的常量具有作用域和命名空间,它们在定义它们的作用域内可见,且可以通过命名空间进行限定。宏定义的常数:使用 #define 定义的......
  • React16-基础知识第二版-全-
    React16基础知识第二版(全)原文:zh.annas-archive.org/md5/3e3e14982ed4c5ebe5505c84fd2fdbb9译者:飞龙协议:CCBY-NC-SA4.0前言自第一版ReactEssentials以来,React生态系统发生了很多变化。越来越多的人正在构建React应用程序,有成熟的库和框架支持React应用程序,React......
  • LeetCode 1669. Merge In Between Linked Lists
    原题链接在这里:https://leetcode.com/problems/merge-in-between-linked-lists/description/题目:Youaregiventwolinkedlists: list1 and list2 ofsizes n and m respectively.Remove list1'snodesfromthe ath nodetothe bth node,andput list2 in......
  • VMware Workstation Pro各版本下载(2024.5.5之后)
    最近有人反映说之前的VMwareWorkstation链接无法下载VMware,索性直接分享几个常用安装包,大家可以点击链接下载。整理不易,点赞关注一下吧1.系统要求VM17:硬件要求较高,Windows10或更高版64位。VM16:硬件要求较高,Windows10或更高版64位。VM12:硬件要求低,Windows7或更高版64位......
  • CF1656F
    题目大意:一张无向完全图,节点\(i\)的点权为\(a_i\)。每条边的边权由一个函数给出,\(W(u,v,t)=a_ua_v+t\times(a_u+a_v)\),其中\(t\)是一个尚未确定任意实数,且对于所有边都是一致的。显然如果固定\(t\)就存在一颗最小生成树,于是定义\(F(t)\)等于此\(t\)下最小生成树的边权......
  • luoguP1163-二分
    银行贷款题目链接:https://www.luogu.com.cn/problem/P1163本题思路:orz公式数学公式给出n,m,k,求贷款者向银行支付的利率p,使得:$\sum_{i=1}^{k}m*[\frac{1}{1+p}]^{i}$,通过化简(根据等比数列的求和公式)我们有:$m\frac{1-\left(\frac{1}{1+p}\right)^k}{1-\frac{......
  • 3SRB2516-ASEMI适配大功率充电桩3SRB2516
    编辑:ll3SRB2516-ASEMI适配大功率充电桩3SRB2516型号:3SRB2516品牌:ASEMI封装:SGBJ-5正向电流(Id):25A反向耐压(VRRM):1600V正向浪涌电流:400A正向电压(VF):1.05V引脚数量:5芯片个数:5芯片尺寸:88MIL功率(Pd):大功率设备工作温度:-55°C~150°C类型:整流桥、插件整流桥3SRB2516整流桥描......
  • sql server 2016 查询表结构
    select [表名] =CASEWHENc.column_id=1thenSCHEMA_NAME(t.schema_id)+'.'+t.nameELSE''END, [表创建时间]=CASEWHENc.column_id=1thenCONVERT(varchar,t.create_date,111)ELSE''END, [表修改时间]=CASEWHENc.column_id......
  • Navicat Premium 16,永久激活破解!
    今天带着 NavicatPremium16注册机 给各位大佬演示下如何永久激活。坐好发车了!Navicat官网中文版下载地址:https://www.navicat.com.cn/download/navicat-premium官网下载地址默认下载的都是最新版本,本教程使用的就是最新的 NavicatPremium16V16.0.11中文版64位 安装包......