VK Cup 2012 Qualification Round 2部分题解(C,D,E)

API安全攻防实战:从信息搜集到漏洞利用的完整路径 本文详细解析了API安全攻防实战的全过程,从信息搜集到漏洞利用,涵盖了渗透测试的核心技巧和工具使用。通过真实案例展示如何发现和利用API漏洞,如HTTP方法滥用、内容类型转换攻击等,并提供企业级防御策略和测试心得,帮助安全研究人员提升API安全防护能力。 阅读详情

CF上的一场资格赛,有二十四小时的时间给我们做,所以为了晋级,我和队友合力弄掉了四题,而最后的E题其实也不难,后来也过了……因为A,B相对较水,所以以下只讲后三题……

contest

C题:

比赛时一致认为暴力不行,比赛后发现很多都是暴力过的……因此,比赛时用到了树状数组……其实是队友做出的,无限YM……不过树状数组真是个好东西啊……

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
#define M (1<<18)
int cl[26][M];             //cl[i][j]表示的是第i种字母在数高为j里的数目
int lowbit(int x)
{
	return x&(-x);
}
void add(int id,int pos,int v)
{
	while(pos<M)
	{
		cl[id][pos]+=v;
		pos+=lowbit(pos);
	}
}
int find(int id,int x)
{
	int i,ans,cnt;
	ans=cnt=0;
	for(i=18;i>=0;i--)
	{
		ans+=(1<<i);
		if(ans>=M||cnt+cl[id][ans]>=x)ans-=(1<<i);
		else cnt+=cl[id][ans];
	}
	return ans+1;
}
int main()
{
	//freopen("a.txt","r",stdin);
	int i,k,n,x,id,pos,len;
	char c;
	string s,str;
	cin>>n>>s;
	str="#";
	for(i=0;i<n;i++)str+=s;
	len=str.size();
	for(i=1;i<len;i++)
	{
		id=str[i]-'a';
		add(id,i,1);             //建树
	}
	cin>>k;
	while(k--)
	{
		cin>>x>>c;
		id=c-'a';
		pos=find(id,x);             //找此点目前的位置
		str[pos]='#';
		add(id,pos,-1);             //删点
	}
	for(i=0;i<len;i++)
	{
		if(str[i]=='#')continue;
		cout<<str[i];
	}
	cout<<endl;
	return 0;
}

D题:

这题是一道挺好的dp,里面的数组f[i][j]表示的是字符串i到j的回文的数目,sum[i]表示的是i后面(包括i)的回文的数目……

#include<iostream>
using namespace std;
__int64 f[2005][2005];
int main()
{
    //freopen("a.txt","r",stdin);
    __int64 i,j,k,l,len,sum[2005];
    char s[2005];
    scanf("%s",s);
    len=strlen(s);
    memset(f,0,sizeof(f));
    for(i=0;i<len;i++)f[i][i]=1;             //只有一个字符时,回文数为1
    for(i=1;i<len;i++)             //i表示间距
        for(j=0;i+j<len;j++)
        {
            k=i+j;
            if(s[j]==s[k])
            {
                if(i==1)f[j][k]=1;
                else f[j][k]=f[j+1][k-1];             //只有j和k中间的那一段是回文,j到k才是回文
            }
        }
    memset(sum,0,sizeof(sum));
    for(i=0;i<len;i++)
        for(j=i;j<len;j++)
            sum[i]+=f[i][j];             //这时sum[i]以i为起点的后面的回文数
    for(i=0;i<len;i++)
        for(j=i+1;j<len;j++)
            sum[i]+=sum[j];             //这里sum[i]加上i后面不同起点的回文数
    l=0;
    for(i=0;i<len;i++)
        for(j=i;j<len;j++)
            if(f[i][j])l+=sum[j+1];
    printf("%I64d\n",l);
    return 0;
}


E题:

超级模拟题,不多说,直接看代码……

#pragma warning(disable:4786)
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<map>
using namespace std;
struct T
{
    int c,d;
    __int64 h;
}p[100005];
bool cmp(T x,T y)
{
    return x.c!=y.c?x.c<y.c:x.h>y.h;
}
__int64 h1[100005],h2[100005],a2[100005];
vector<int> g,a1[100005];
vector<T> v[100005];
map<int,int> m;
int main()
{
    //freopen("a.txt","r",stdin);
    int d,i,j,k,l,s,n,y1,y2,len,i1,j1,y3,y4;
    __int64 w,x1,x2,Max;
    T t;
    m.clear();
    scanf("%d",&n);
    for(i=0;i<n;i++)v[i].clear();
    for(i=0;i<n;i++)
    {
        scanf("%d%I64d",&p[i].c,&p[i].h);
        p[i].d=i+1;
    }
    sort(p,p+n,cmp);
    d=p[0].c;
    l=1;
    m[d]=l++;
    for(i=1;i<n;i++)
        if(p[i].c!=d)
        {
            d=p[i].c;
            if(!m[d])m[d]=l++;
        }
    for(i=0;i<n;i++)
    {
        d=m[p[i].c];
        w=p[i].h;
        if(v[d].size())w+=v[d][v[d].size()-1].h;
        t.h=w,t.d=p[i].d;
        v[d].push_back(t);
    }
    len=0;
    memset(h1,0,sizeof(h1));
    memset(h2,0,sizeof(h2));
    for(i=1;i<l;i++)
    {
        for(j=0;j<v[i].size();j++)
        {
            if(h1[j+1]<=v[i][j].h)
            {
                if(h1[j+1]==v[i][j].h)
                {
                    a1[j+1].push_back(i);
                    continue;
                }
                if(a1[j+1].size())
                {
                    h2[j+1]=h1[j+1];
                    a2[j+1]=a1[j+1][0];
                }
                h1[j+1]=v[i][j].h;
                a1[j+1].clear();
                a1[j+1].push_back(i);
            }
            else
            {
                if(h2[j+1]<v[i][j].h)
                {
                    h2[j+1]=v[i][j].h;
                    a2[j+1]=i;
                }
            }
        }
        if(len<v[i].size())len=v[i].size();
    }
    Max=0;
    for(i=1;i<=len;i++)
    {
        x1=h1[i];
        for(j=i-1;j<i+2;j++)
        {
            if(j==0||j==len+1)continue;
            x2=h1[j];
            for(k=0;k<a1[i].size();k++)
            {
                y1=a1[i][k];
                for(l=0;l<a1[j].size();l++)
                {
                    y2=a1[j][l];
                    if(y1!=y2)break;
                }
                if(l!=a1[j].size())break;
            }
            if(k==a1[i].size())
            {
                x2=h2[j];
                y2=a2[j];
            }
            if(x2==0)continue;
            if(Max<x1+x2)
            {
                Max=x1+x2;
                s=i+j;
                i1=i,j1=j,y3=y1,y4=y2;
            }
        }
    }
    g.clear();
    d=i1<j1?i1:j1;
    if(i1<j1)swap(y3,y4);
    for(i=0;i<d;i++)
    {
        g.push_back(v[y3][i].d);
        g.push_back(v[y4][i].d);
    }
    if(i1!=j1)g.push_back(v[y3][i].d); 
    printf("%I64d\n%d\n",Max,s);
    for(i=0;i<g.size();i++)
    {
        if(i)printf(" ");
        printf("%d",g[i]);
    }
    printf("\n");
    return 0;
}





Educoder:爬虫实战——求是网周刊文章爬取 第1关:获取新闻url importrequests importre defgeturls(): #**********Begin**********# url='http://www.qstheory.cn/dukan/qs/2014/2019-01/01/c_1123924172.htm' headers={ 'User-Agent':'Mozilla/5.0(Linux;Android6.0;Nexus5Buil... 阅读详情

相关推荐

谐振电路原理与应用场景全解析

本文全面解析了谐振电路的原理、类型及其核心应用。详细阐述了串联谐振与并联谐振的工作特性,并重点介绍了其在无线通信调谐、音频处理分频以及电力系统滤波与无功补偿等关键场景中的实际作用。通过公式推导与实例分析,帮助读者深入理解LC谐振的选频与能量交换机制。

t1u2v的博客 840

EIL MU Analysis Report (ZRPP143)

************************************************************************ * Program     : ZRPP143         REL : 4.6c    Author : Dainel Jiang   * * Created     : 03-11-2011      APP : All     Type

Gangelwn 3万+

告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化

本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。

weixin_30596735的博客 358

war3第一视角合集

war3第一视角合集

cnbird's blog 2万+

【Cadence】Virtuoso@LayoutXL 差分电路版图镜像同步技巧详解

本文详细介绍了在Cadence Virtuoso LayoutXL中实现差分电路版图镜像同步的技巧,包括核心需求、环境配置、分步操作指南及高级技巧。通过使用LayoutXL的Group功能,工程师可以高效保持差分电路的对称性,提升版图迭代效率,确保高速信号处理的稳定性。特别适用于深亚微米工艺下的差分放大器设计。

weixin_29215391的博客 323

超详细 VMware Horizon 虚拟桌面VDI安装步骤

主要的目的是模拟生产环境中的共享存储。自动桌面相当于共享电脑,大家使用同一个虚拟机,对虚拟机的修改都放在用户的配置文件中,RDS桌面池相当于共享的服务器,可以多人同时连接到服务器上。1:之前已经建立好了NFS的存储,这部分配置好后,以后的虚拟机可以安装到NFS的存储中。2: 使用Composer发布系统可以解决SID,机器名冲突的问题,更重要的可以节约磁盘空间,发布的所有系统可以访问一块磁盘。26: 域选择我们之前建立的域,用户名我输入的是管理员,可以在AD域新建用户点击查找,我这里用的是管理员。

vv12345的博客 1万+

VK Cup 2015 - Qualification Round 1 A. Reposts(map最大连续长度)

A. Reposts time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output One day Polycarp published a funny picture in a s

KongWX 3万+

Android日志实战——车机日志获取(十五)

这个项目中的 Log 管理系统,其实只是将系统原生 Log 进行输出并导出,并没有太复杂的操作。还有一种 Log 管理系统需要对 Android 原生 Log 系统进行重写,例如我们使用 Log.d(tag, msg) 打印 Log,需要我们根据 tag 信息将不同模块的 Log 数据写入不同的本地文件下,这样可以方便不同模块查看自己的 Log,追踪异常问题。

小旭的专栏 3780

Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) A B C D 模拟

链接:戳这里 A. Little Artem and Presents time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Little Artem got n stones on his birthday and

Cross 88万+

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1502

matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决

matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 目录 matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 #使用plt.savefig("cm.png",dpi = 300)为什么不管用 #plt.rcParams也不管用 #解决方案 在做论文的过程中,许多期刊或者会议对图片的分辨率有明确的要求,例如,dpi=300。 之前画曲线图都是采取保存方式为savefig(dpi=300),然后查看保存图片的属性信息,然而你看到的现象是

data+scenario+science+insight 8800

Override VK_TTALK & VK_TEND

转自: http://kevinyisuihan.blog.163.com/blog/static/404793222008812942364/ When working on a project that involved creating a custom dialer for Windows Mobile devices, one of the more important tasks

2554

上位机图像处理和嵌入式模块部署(qmacvisual入门)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 虽然我们前面学习了很多的知识点,比如说在windows这边,用qt写界面,用opencv写图像处理代码;在linux这边先用树莓派测试,最后再部署到自己的平台上面。但是,对于一个商业软件是怎么运行的,很多时候我们心理还是没有底,或者说,自己写的软件距离一个商业软件还有多远,大部分学习的同学是不知道的。 就算有的同学说,这个时候可以借鉴一下vision pro,或者是

嵌入式-老费,一个分享专业嵌入式知识的blog 1231

VK Cup 2012 Qualification Round 2 C. String Manipulation 1.0 字符串模拟

C. String Manipulation 1.0 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 codeforces.com/problemset/problem/91/B Description One popular website developed an unusual username editing procedure. ...

weixin_30378311的博客 166

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VK Cup 2012 Qualification Round 2 C. String Manipulation 1.0 线段树 or 树状数组+二分

http://codeforces.com/problemset/problem/159/C 题意: 给你一个字符串s,给出一个数k,k倍的s串组成新串str。然后给出n个操作,每个操作对应着pi,ci意思是将第pi个字符ci从str中删除,求最后得到的字符串。 思路: 首先我想到的是利用vector里面的erase快速的删除,开一个vc[26]来存取每个字符然后模拟删除过程,才开始自己一...

weixin_33920401的博客 118

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Vk开发配置检测demo(草稿

// // Created by LCBHSStudent on 2020/1/27. // #ifndef VULKANDEMO_VKAPP_H #define VULKANDEMO_VKAPP_H #include <glm/glm.hpp> #include <vulkan/vulkan.h> #include <vector> using std...

黑色低级高中生的博客 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IOS视频播放器VKVideoPlayer简单教程

VKVideoPlayer 是一个在 Viki iOS 应用里使用的视频播放器。 主要特性: 完全可定制的 UI 任何大小乃至全屏 支持字幕显示 可定制的字幕显示风格 支持 HTTP 直播流 支持屏幕方向调整 Bulletproof event machine to easily integrate features like video ads Lots of de

Kae_eing的博客 1万+

2017Google Codejam round1b Problem C. Pony Express

Problem It's the year 1860, and the Pony Express is the fastest mail delivery system joining the East and West coasts of the United States. This system serves N different cities. In each city, th

youngkl博客 7982

VK Cup 2012 Qualification Round 2--E. Zebra Tower 离散化+优先队列

E. Zebra Tower time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output Little Janet likes playing with cubes. Act

u012870383的专栏 667

自已来定义VK_0~VK_9,VK_A~VK_z

定义好的头文件下载地址: http://download.youkuaiyun.com/download/friendan/4378771 前言: 在Windows编程中,我们要经常判断、处理字符, 在字符定义了相应的宏之后,我们写起程序就很直观了, 当你发现MS没有为我们定义时,是不是有点气愤呢? 我在VS2008中写程序时,发现MS只是告诉了我们0-9,A-Z的数值范围, ...

weixin_34342992的博客 472

CodeForces-VK Cup 2012 Round 2 (Unofficial Div. 2 Edition) -C. Substring and Subsequence

"好久不打codeforces了,本来就极菜!还没感觉!特么被生虐有木有! 这题当div2就出20+,div1早早就500+了,差距啊差距. 吐槽:acm的王道在于可持续装逼,其保证来源于可持续的切题!" 一.题目大意:让你求有多少对pair(x,y),其中x来源于字符串s的"连续子串",y则来源于t字符串的"子序集" 二.被虐原因:当时动规主要纠结于这个"子序集"y如何生成,一直未果,蛋

流水不争先 1109

thymeleaf报错

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [order/updateState], template might not exist or might not be accessible by any of the configured Template Resolvers at org....

qq_40636930的博客 522

VK Cup 2012 Finals, Practice Session C. Trails and Glades (欧拉回路,并查集)

题目描述 给定一个n个点,m条边的无向图, 可能有重边和自环, 求最少添加几条边,使得图中所有边都在从1出发的欧拉回路上。 注意点: 1、这个题强制了从 1 开始走 2、要走题目中给的所有边 3、孤立的点可以不走,如果有自环的话一定要走 4、无论什么情况,1 这个点一定要走, 思路: 这个题我用了并查集来做。然后就是分类讨论了。 并查集首先求出来有多少个联通块,这个时...

Top_xiao的博客 275

VK Cup 2017 - Qualification 2 C. Online Courses In BSU

http://codeforces.com/problemset/problem/770/C 题目大意: 一共有N个科目,其中有M个主要科目,只要M个主要科目都通过了,那么对应主人公就可以毕业了,也就是达成了目的。 现在有一个列表,表示要通过第i门课程需要先通过的科目列表。现在主人公希望得到一个通过科目的顺序,使得最终他通过最少的科目使得主人公毕业。 做法:第一

twh233的算法blog 498

VK-Cup 2017 qualification 1

VK-Cup,cf里面只有切成俄文才能看到,题目也都是俄文的(百度翻译成英文和中文). 两人组队参赛的,赛期1天,乐多赛赛制(和时间基本无关,交上去挂了扣分)。这次是第一场资格赛。 这次又和ditoly大佬组队啦,队名不知道该叫什么,因为我们真的菜,就取了个名字叫vegetable chicken(菜鸡) 但是题目不会很难,所以都一次过了(真的舒服) --------------...

weixin_30952103的博客 157

Codeforces VK Cup 2017 - Round 2

A. Voltage Keepsake二分答案。B. Volatile Kite把问题转换为求每个点到相邻2点组成的线段的距离。C. Vulnerable Kerbals这题有点意思。我们可以推出这样的结论,当前缀的积(mod m)与m互质时,添加一个数,前缀积可以转换为所有数;但是当前缀的积(mod m)与m的最大公约数为gcd时,添加一个数,只能转换为gcd的倍数。所以策略是先转化为与m的最大公

A Cube Master 811
上一篇: 【树形dp】ZOJ-3326-Tree of Tree
下一篇: 【双连通分量(tarjan)+树形dp】HDU-2242-考研路茫茫——空调教室
AndRing
博客等级 码龄15年 5粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值