• CF85D Sum of Medians


    CF85D Sum of Medians

    洛谷传送门

    题意翻译

    • 有一个集合,初始为空。现有nn次操作:

      1. add x:将 xx 添加到集合中。
      2. del x:将 xx 从集合中删除。
      3. sum:将集合内的数从小到大排好序后形成有 kk 个数的序列 aa,求

      sum_{i}^{(ile k)land (imod 5=3)}a_ii∑(ik)∧(imod5=3)a**i

    • 1le nle 10^51≤n≤105,1le xle 10^91≤x≤109。


    题解:

    用这道题学会了一些vector的奇技淫巧。

    vector其实可以维护有序,也就是说,它支持像链表一样的操作,在某一个位置前插入元素。

    这就是 insert() 函数。

    insert函数可以在指定位置前加上一个元素,加上多个相同元素,或者插入一个区间的所有元素

    这道题就是一个序列,add就是添加一个数,del就是删除一个数,sum让你求将该序列从小到大排序后所有v[i]的v[i]的和。

    于是就暴力插入删除。时间复杂度差不多可过。

    代码:

    #include<cstdio>
    #include<algorithm>
    #include<vector>
    #define ll long long
    using namespace std;
    vector<int> v;
    int n;
    int main()
    {
    	scanf("%d",&n);
    	while(n--)
        {
    		int x;
    		char op[3];
    		scanf("%s",op);
    		if(op[0]=='a')
            {
    			scanf("%d",&x);
    			v.insert(lower_bound(v.begin(),v.end(),x),x);
    		}
    		else if(op[0]=='d')
            {
    			int x;
    			scanf("%d",&x);
    			v.erase(lower_bound(v.begin(),v.end(),x));
    		}
    		else
            {
    			ll ans=0;
    			for(int i=2;i<v.size();i+=5)
    				ans+=v[i];
    			printf("%lld
    ",ans);
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    RobotFramework+Selenium2+Appium环境搭建
    spring mvc 依赖包
    linux
    清理linux 某个文件夹下面所有的log文件
    selenium grid2 使用远程机器的浏览器
    IntelliJ Idea 快捷键
    aop注解 自定义切面的注解写法
    springmvc多视图配置
    @Autowired(required = false)
    pom.xml配置详解
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14059342.html
Copyright © 2020-2023  润新知