- Django 提供的 CSRF 防护机制
hzp666
pythonpythoncsrfdjango
用django有多久,我跟csrf这个概念打交道就有久了。每次初始化一个项目时都能看到django.middleware.csrf.CsrfViewMiddleware这个中间件每次在模板里写form时都知道要加一个{%csrf_token%}tag每次发ajaxPOST请求,都需要加一个X_CSRFTOKEN的header但是一直我都是知其然而不知其所以然,没有把csrf的机制弄清楚。昨天稍微研
- Django高级之-forms组件
Renweif
Djangodjango
Django高级之-forms组件1校验字段功能针对一个实例:注册用户讲解。模型:models.pyclassUserInfo(models.Model):name=models.CharField(max_length=32)pwd=models.CharField(max_length=32)email=models.EmailField()模版文件Title{%csrf_token%}用户名
- 基于python,用django框架,搭建最简单的网站,适合初学者入门
依然风yrlf
pythondjango开发语言
前端页面信息录入页面客户基本信息录入{%csrf_token%}客户的名字:  客户的手机号:客户的身份证:客户的地址:  后台程序基于djang框架wiews.py内容#-*-coding:utf-8-*-from__future__importunicode_literalsfromdjango.httpimportHttpResponsefromdjango.
- 共享基于python开发的chatGPT,调用4.0接口
依然风yrlf
python开发语言
前端html部分:{%extends'layout.html'%}{%blockcontent%}人工智能AIChat您:{{question}}AI:{{answer}}{%csrf_token%}发送{%endblock%}后端python部分:fromdjango.shortcutsimportrender,HttpResponse,redirectfromapp01importmodels
- Django+vue开发发送POST请求遇到 CSRF验证失败. 请求被中断.
黑框2019
问题描述禁止访问(403)CSRF验证失败.请求被中断.Reasongivenforfailure:CSRFtokenmissingorincorrect.先看所使用的组件在本次遇到的问题中,主要使用了el-input和el-select两种组件先看源代码{%loadstaticfiles%}test{##}{%csrf_token%}立即创建newVue({el:'#app',data(){re
- Django教程第6章 | web开发实战-文件上传(导入文件、上传图片)
程序员丶Johnny
Django教程djangoweb开发python
专栏系列:Django学习教程导入文件目标:导入部门清单excel,解析excel数据存储到数据库。1.准备要导入的excel文件2.编写模板HTML批量上传{%csrf_token%}3.编写模型fromdjango.dbimportmodelsclassDepartment(models.Model):name=models.CharField(verbose_name='部门名称',max_
- Python篇-Django进阶篇
TianTianBaby223
一:CSRF验证为了防止模拟跨站访问的CSRF攻击,Django里中间件通常会设置一个django.middleware.csrf.CsrfViewMiddleware来确保此次访问是用户行为,本地生成随机字符串,并且放入cookie中,假如再次提交时候没有此随机字符串则无法通过templates处理在form表单中放入{%csrf_token%}{%csrf_token%}templateAja
- Django(七)
Stara0511
pythondjangomysql
Django(六)4.编辑用户点击编辑,跳转到编辑页面(将编辑行的ID携带过去)。编辑页面(默认数据,根据ID获取并设置到页面中)提交:错误提示数据校验在数据库更新user_edit.html{%extends'layout.html'%}{%blockcontent%}编辑用户{%csrf_token%}{%forfieldinform%}{{field.label}}{{field}}{{fi
- django ajax Forbidden (CSRF token missing or incorrect.)
青铜搬砖工
看网上解决方法都是在方法上添加@csrf_exempt不进行csrf验证,感觉治标不治本。经过学习django发送ajax,得到解决方法,在ajax的data中加入csrfmiddlewaretoken:'{{csrf_token}}'例如:$.post('{%url"blog:user_detail"user.id%}',{id:$(this).data('id'),action:$(this)
- laravel表单数据验证
历史老师-
laravel框架laravel前端javascript
1.laravel提供的数据验证有多个方法,每个验证规则用“|”隔开。表单与ajax的csrf处理表单处理:{{csrf_field()}}ajax处理:{{csrf_token}}注意:表单处理和ajx提交处理是不一样的。区别在于表单处理的会多生成一个存放token的隐藏域。我们先创造控制器与页面1、使用控制器$this->validate进行表单验证2、独立方式去验证表单3、验证器1、使用$t
- django 自定义html5,django实现简单的后台管理页面和部分数据展示
weixin_39700548
django自定义html5
以下步骤展示了简单的流程:创建工程配置工程简单的模型设计搜索并简单修改前台页面表单显示搜索重置过滤器等功能注:仅供个人回顾用1.基本方法action提交地址method指定请求方式,默认不填为get,post请求安全性更高csrf_token注释或添加到html中可防止校验input框checkbox多选框enctype=‘multipart/form-data‘上传文件必填参数multiple上
- Flask 项目中解决csrf攻击
於 兔シ
flaskpythonflask
首先装个库吧,命令如下:pipinstallflask_wtf在Flask中,Flask-wtf扩展有一套完善的csrf防护体系,对于我们开发者来说,使用起来非常简单设置应用程序的secret_key,用于加密生成的csrf_token的值#1.session加密的时候已经配置过了.如果没有在配置项中设置,则如下:app.secret_key="#此处可以写随机字符串#"#2.也可以写在配置类中。
- Django框架 之 基于Ajax中csrf跨站请求伪造
weixin_34302561
pythonjavascriptViewUI
Django框架之基于Ajax中csrf跨站请求伪造ajax中csrf跨站请求伪造方式一123$.ajaxSetup({data:{csrfmiddlewaretoken:'{{csrf_token}}'},});方式二12345{%csrf_token%}$.ajax({...data:{"csrfmiddlewaretoken":$("[name='csrfmiddlewaretoken']"
- CSRF验证失败请求中止在Django上
dituirenwu
地推
如何解决CSRF验证失败请求中止在Django上?你需要将{%csrf_token%}模板标记添加为formDjango模板中元素的子代。这样,模板将呈现一个隐藏元素,其值设置为CSRF令牌。当Django服务器收到表单请求时,Django将验证令牌与表单中呈现的值匹配。这对于确保POST请求(即,数据更改请求)源自真实的客户端会话是必要的。解决方法我正在关注Django1.3Web开发。对于登录
- Django中的CSRF使用及ajax请求接口时问题总结
eaglecolin
Djangodjangocsrfajax
前言说明在Django中提交数据到后端服务的时候,为了安全,要使用CSRF(跨站请求伪造)。跨站请求伪造的问题在于,服务器信任来自客户端的数据。常规的做法是在template模板HTML文件中的form表单中添加{%csrf_token%}可以实现安全提交。DjangoCSRF使用和理解我们先构建一个最简单的登录登出Demo程序,源码详见这里只给出login.html部分的代码{%csrf_tok
- python csrf token_python/django: {% csrf_token %}
weixin_39798579
pythoncsrftoken
csrf_token是为了防止csrf(跨站请求伪造),防止黑客盗用你存在网站(cookie)上的账户密码和信息具体做了什么:在渲染模板时,django会把{%csrf_token%}替换成一个元素。在提交表单的时候,会把这个token给提交上去。django默认启动'django.middleware.csrf.CsrfViewMiddleware’中间件,这个中间件就是来验证csrf_toke
- Django 使用 csrf_token 验证
一VII一
Django
使用csrf_token的原因是为了防止CSRF攻击,它会生成一个安全的令牌(token),提高网站安全性。Django自带用于全局csrf_token验证的中间件django.middleware.csrf.CsrfViewMiddleware。1、在Django的settings文件中:settings文件中配置完毕后,全局向后台的POST请求都会使用csrf_token验证。2、views文
- Django中CBV与FBV处理csrf_token方法
番茄西瓜汤
Djangopythondjangocsrf_tokenpython
中间件回顾首先这是5个中间件常用的是前面3个,后面是报错的情况下才会走process_requestprocess_viewprocess_responseprocess_exceptionprocess_render_templateCSRF是在process_view的时候执行校验,process_request的时候会优先判断过滤条件【是否使用了csrf_exempt,csrf_protec
- Django---csrf_token
RabinRow
前端后端postmanViewUI
1、csrf_token的作用django为用户实现防止跨站请求伪造的功能,通过中间件django.middleware.csrf.CsrfViewMiddleware来完成。2、设置csrf_token对于django中设置防跨站请求伪造功能有分为全局和局部。(1)全局settings.py文件中:MIDDLEWARE=[......django.middleware.csrf.CsrfView
- Django之cbv加装饰器、中间件及CSRF_TOKEN跨站请求伪造
一切随心走_水瓶
python中间件django
文章目录1、cbv加装饰器2、中间件2.1、定义2.2、如何自定义中间件2.3、中间件中的五个方法2.3.1、process_request和process_response2.3.1.1、process_request的作用2.3.1.2、process_request的作用2.3.2、process_view2.3.3、process_exception2.3.4、process_templa
- Django:Ajax与csrf_token
tigerking1001
Djangoajaxdjango
起因:Ajax提示403错误闲言碎语:据课程结束还有一周多,js杀我,要加油加油。CSRF(CrossSiteRequestForgeryprotection),中文简称跨站请求伪造。django为用户实现防止跨站请求伪造的功能,通过中间件django.middleware.csrf.CsrfViewMiddleware来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。全局:中间
- Django中的“csrf_token”作用
马德里@
webpythondjango
简介:django为用户实现防止跨站请求伪造的功能,通过中间件django.middleware.csrf.CsrfViewMiddleware来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。全局:中间件django.middleware.csrf.CsrfViewMiddleware;局部:@csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings
- django设置csrf_token
scott_zhb
csrf_token
一、关于csrf_tokencsrf:跨站请求伪造,防止其他人改造,盗取信息,反正就是一种网站的防护措施服务器端:设置随机的csrf_token,get请求的时候就该设置好客户端:携带上相应的csrf_token,post请求的时候携带上二、form表单设置csrf_token通过模板标签进行设置当提交post请求的时候会自动带上三、针对某个类视图设置csrf_tokenfromdjango.vi
- django避免csrf_token验证
cinkpcpwpoin1204612
djangocsrf前端后端
当网页通过自定义的post函数提交虚拟表单时,由于csrf_token的缺失,django服务器会拒绝接收这一post请求functionpost(elements){varvirtual_form=document.createElement("form");virtual_form.action='';//填写需要提交的目标url,django中如果是向自己发送post请求,直接填写''vir
- Django中csrf_token标签
HHYZBC
Djangodjangocsrf前端
这个标签用于CSRF保护,CSRF中间件和模板标签提供了易于使用的保护,防止跨站请求伪。当一个恶意网站包含一个链接、一个表单按钮或一些JavaScript,目的是在你的网站上执行一些操作,使用在浏览器中访问恶意网站的登录用户的凭证时,就会发生这种类型的攻击。此外,还包括一种相关的攻击类型,“登录CSRF”,即攻击网站欺骗用户的浏览器使用他人的凭证登录网站。使用方法如下:{%csrf_token%}
- Django之中间件与CSRF_TOKEN
0Jchen
Djangodjango中间件csrf
文章目录一、什么是中间件二、中间件有什么用三、Django自定义中间件中间件中主要方法及作用`创建自定义中间件的步骤:`process_request与process_response方法process_view方法process_exceptionprocess_template_response(不常用)四、CSRF_TOKEN流程图介绍中间件一、什么是中间件Django中间件类似于djang
- Django系列之Django与ajax上传文件
longgggggggggggggggg
Djangojs
一、通过form表单来上传文件1.在html模板中#在form属性中写入enctype="multipart/form-data"这样form表单才能支持数据文件的提交{%csrf_token%}头像用户名提交2.在views视图中写入defindex(request):ifrequest.method=='GET':returnrender(request,'index.html')else:u
- Django 入门学习总结5
computerclass
django学习数据库
修改polls/detail.html文件,写一个表单:{%csrf_token%}{{question.question_text}}{%iferror_message%}{{error_message}}{%endif%}{%forchoiceinquestion.choice_set.all%}{{choice.choice_text}}{%endfor%}修改polls/views.py文
- Django之模版层
ζ浅安时光
djangopython后端
目录一、常用语法二、模版语法之变量三、模板之过滤器(Filters)【1】default【2】length【3】filesizeformat【4】slice【5】date【6】safe【7】truncatechars【8】其它过滤器(了解)四、模版之标签【1】for标签【2】if标签【3】with【4】csrf_token五、模版导入和继承【1】模版导入【2】模版继承一、常用语法只需要记两种特殊符
- Django的用户登录和注册
陈十一yi
Djangodjangopython
能成功登录和注册并实现页面之间的跳转前提:能成功安装基础的Django创建应用并添加到项目中python.\manage.pystartappuser创建存放模板的目录并添加到项目中欢迎界面陈十一yi的主页欢迎登录您好!欢迎您,{{name}}用户登录界面陈十一yi-用户登录{%csrf_token%}用户名:密 码:登录 注册新
- 强大的销售团队背后 竟然是大数据分析的身影
蓝儿唯美
数据分析
Mark Roberge是HubSpot的首席财务官,在招聘销售职位时使用了大量数据分析。但是科技并没有挤走直觉。
大家都知道数理学家实际上已经渗透到了各行各业。这些热衷数据的人们通过处理数据理解商业流程的各个方面,以重组弱点,增强优势。
Mark Roberge是美国HubSpot公司的首席财务官,HubSpot公司在构架集客营销现象方面出过一份力——因此他也是一位数理学家。他使用数据分析
- Haproxy+Keepalived高可用双机单活
bylijinnan
负载均衡keepalivedhaproxy高可用
我们的应用MyApp不支持集群,但要求双机单活(两台机器:master和slave):
1.正常情况下,只有master启动MyApp并提供服务
2.当master发生故障时,slave自动启动本机的MyApp,同时虚拟IP漂移至slave,保持对外提供服务的IP和端口不变
F5据说也能满足上面的需求,但F5的通常用法都是双机双活,单活的话还没研究过
服务器资源
10.7
- eclipse编辑器中文乱码问题解决
0624chenhong
eclipse乱码
使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File
本文以Eclipse 3.3(英文)为例加以说明:
1. 设置Workspace的编码格式:
Windows-&g
- 基础篇--resources资源
不懂事的小屁孩
android
最近一直在做java开发,偶尔敲点android代码,突然发现有些基础给忘记了,今天用半天时间温顾一下resources的资源。
String.xml 字符串资源 涉及国际化问题
http://www.2cto.com/kf/201302/190394.html
string-array
- 接上篇补上window平台自动上传证书文件的批处理问卷
酷的飞上天空
window
@echo off
: host=服务器证书域名或ip,需要和部署时服务器的域名或ip一致 ou=公司名称, o=公司名称
set host=localhost
set ou=localhost
set o=localhost
set password=123456
set validity=3650
set salias=s
- 企业物联网大潮涌动:如何做好准备?
蓝儿唯美
企业
物联网的可能性也许是无限的。要找出架构师可以做好准备的领域然后利用日益连接的世界。
尽管物联网(IoT)还很新,企业架构师现在也应该为一个连接更加紧密的未来做好计划,而不是跟上闸门被打开后的集成挑战。“问题不在于物联网正在进入哪些领域,而是哪些地方物联网没有在企业推进,” Gartner研究总监Mike Walker说。
Gartner预测到2020年物联网设备安装量将达260亿,这些设备在全
- spring学习——数据库(mybatis持久化框架配置)
a-john
mybatis
Spring提供了一组数据访问框架,集成了多种数据访问技术。无论是JDBC,iBATIS(mybatis)还是Hibernate,Spring都能够帮助消除持久化代码中单调枯燥的数据访问逻辑。可以依赖Spring来处理底层的数据访问。
mybatis是一种Spring持久化框架,要使用mybatis,就要做好相应的配置:
1,配置数据源。有很多数据源可以选择,如:DBCP,JDBC,aliba
- Java静态代理、动态代理实例
aijuans
Java静态代理
采用Java代理模式,代理类通过调用委托类对象的方法,来提供特定的服务。委托类需要实现一个业务接口,代理类返回委托类的实例接口对象。
按照代理类的创建时期,可以分为:静态代理和动态代理。
所谓静态代理: 指程序员创建好代理类,编译时直接生成代理类的字节码文件。
所谓动态代理: 在程序运行时,通过反射机制动态生成代理类。
一、静态代理类实例:
1、Serivce.ja
- Struts1与Struts2的12点区别
asia007
Struts1与Struts2
1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法的P
- 初学者要多看看帮助文档 不要用js来写Jquery的代码
百合不是茶
jqueryjs
解析json数据的时候需要将解析的数据写到文本框中, 出现了用js来写Jquery代码的问题;
1, JQuery的赋值 有问题
代码如下: data.username 表示的是: 网易
$("#use
- 经理怎么和员工搞好关系和信任
bijian1013
团队项目管理管理
产品经理应该有坚实的专业基础,这里的基础包括产品方向和产品策略的把握,包括设计,也包括对技术的理解和见识,对运营和市场的敏感,以及良好的沟通和协作能力。换言之,既然是产品经理,整个产品的方方面面都应该能摸得出门道。这也不懂那也不懂,如何让人信服?如何让自己懂?就是不断学习,不仅仅从书本中,更从平时和各种角色的沟通
- 如何为rich:tree不同类型节点设置右键菜单
sunjing
contextMenutreeRichfaces
组合使用target和targetSelector就可以啦,如下: <rich:tree id="ruleTree" value="#{treeAction.ruleTree}" var="node" nodeType="#{node.type}"
selectionChangeListener=&qu
- 【Redis二】Redis2.8.17搭建主从复制环境
bit1129
redis
开始使用Redis2.8.17
Redis第一篇在Redis2.4.5上搭建主从复制环境,对它的主从复制的工作机制,真正的惊呆了。不知道Redis2.8.17的主从复制机制是怎样的,Redis到了2.4.5这个版本,主从复制还做成那样,Impossible is nothing! 本篇把主从复制环境再搭一遍看看效果,这次在Unbuntu上用官方支持的版本。 Ubuntu上安装Red
- JSONObject转换JSON--将Date转换为指定格式
白糖_
JSONObject
项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式:
{"nanos":0,"time":-27076233600000,
- JavaScript语言精粹读书笔记
braveCS
JavaScript
【经典用法】:
//①定义新方法
Function .prototype.method=function(name, func){
this.prototype[name]=func;
return this;
}
//②给Object增加一个create方法,这个方法创建一个使用原对
- 编程之美-找符合条件的整数 用字符串来表示大整数避免溢出
bylijinnan
编程之美
import java.util.LinkedList;
public class FindInteger {
/**
* 编程之美 找符合条件的整数 用字符串来表示大整数避免溢出
* 题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0
*
* 假设当前正在搜索由0,1组成的K位十进制数
- 读书笔记
chengxuyuancsdn
读书笔记
1、Struts访问资源
2、把静态参数传递给一个动作
3、<result>type属性
4、s:iterator、s:if c:forEach
5、StringBuilder和StringBuffer
6、spring配置拦截器
1、访问资源
(1)通过ServletActionContext对象和实现ServletContextAware,ServletReque
- [通讯与电力]光网城市建设的一些问题
comsci
问题
信号防护的问题,前面已经说过了,这里要说光网交换机与市电保障的关系
我们过去用的ADSL线路,因为是电话线,在小区和街道电力中断的情况下,只要在家里用笔记本电脑+蓄电池,连接ADSL,同样可以上网........
 
- oracle 空间RESUMABLE
daizj
oracle空间不足RESUMABLE错误挂起
空间RESUMABLE操作 转
Oracle从9i开始引入这个功能,当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
这一篇简单介绍空间RESUMABLE的例子。
第一次碰到这个特性是在一次安装9i数据库的过程中,在利用D
- 重构第一次写的线程池
dieslrae
线程池 python
最近没有什么学习欲望,修改之前的线程池的计划一直搁置,这几天比较闲,还是做了一次重构,由之前的2个类拆分为现在的4个类.
1、首先是工作线程类:TaskThread,此类为一个工作线程,用于完成一个工作任务,提供等待(wait),继续(proceed),绑定任务(bindTask)等方法
#!/usr/bin/env python
# -*- coding:utf8 -*-
- C语言学习六指针
dcj3sjt126com
c
初识指针,简单示例程序:
/*
指针就是地址,地址就是指针
地址就是内存单元的编号
指针变量是存放地址的变量
指针和指针变量是两个不同的概念
但是要注意: 通常我们叙述时会把指针变量简称为指针,实际它们含义并不一样
*/
# include <stdio.h>
int main(void)
{
int * p; // p是变量的名字, int *
- yii2 beforeSave afterSave beforeDelete
dcj3sjt126com
delete
public function afterSave($insert, $changedAttributes)
{
parent::afterSave($insert, $changedAttributes);
if($insert) {
//这里是新增数据
} else {
//这里是更新数据
}
}
 
- timertask
shuizhaosi888
timertask
java.util.Timer timer = new java.util.Timer(true);
// true 说明这个timer以daemon方式运行(优先级低,
// 程序结束timer也自动结束),注意,javax.swing
// 包中也有一个Timer类,如果import中用到swing包,
// 要注意名字的冲突。
TimerTask task = new
- Spring Security(13)——session管理
234390216
sessionSpring Security攻击保护超时
session管理
目录
1.1 检测session超时
1.2 concurrency-control
1.3 session 固定攻击保护
 
- 公司项目NODEJS实践0.3[ mongo / session ...]
逐行分析JS源代码
mongodbsessionnodejs
http://www.upopen.cn
一、前言
书接上回,我们搭建了WEB服务端路由、模板等功能,完成了register 通过ajax与后端的通信,今天主要完成数据与mongodb的存取,实现注册 / 登录 /
- pojo.vo.po.domain区别
LiaoJuncai
javaVOPOJOjavabeandomain
POJO = "Plain Old Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不但当任何特殊的角色,也不实现任何特殊的Java框架的接口如,EJB, JDBC等等。
即POJO是一个简单的普通的Java对象,它包含业务逻辑
- Windows Error Code
OhMyCC
windows
0 操作成功完成.
1 功能错误.
2 系统找不到指定的文件.
3 系统找不到指定的路径.
4 系统无法打开文件.
5 拒绝访问.
6 句柄无效.
7 存储控制块被损坏.
8 存储空间不足, 无法处理此命令.
9 存储控制块地址无效.
10 环境错误.
11 试图加载格式错误的程序.
12 访问码无效.
13 数据无效.
14 存储器不足, 无法完成此操作.
15 系
- 在storm集群环境下发布Topology
roadrunners
集群stormtopologyspoutbolt
storm的topology设计和开发就略过了。本章主要来说说如何在storm的集群环境中,通过storm的管理命令来发布和管理集群中的topology。
1、打包
打包插件是使用maven提供的maven-shade-plugin,详细见maven-shade-plugin。
<plugin>
<groupId>org.apache.maven.
- 为什么不允许代码里出现“魔数”
tomcat_oracle
java
在一个新项目中,我最先做的事情之一,就是建立使用诸如Checkstyle和Findbugs之类工具的准则。目的是制定一些代码规范,以及避免通过静态代码分析就能够检测到的bug。 迟早会有人给出案例说这样太离谱了。其中的一个案例是Checkstyle的魔数检查。它会对任何没有定义常量就使用的数字字面量给出警告,除了-1、0、1和2。 很多开发者在这个检查方面都有问题,这可以从结果
- zoj 3511 Cake Robbery(线段树)
阿尔萨斯
线段树
题目链接:zoj 3511 Cake Robbery
题目大意:就是有一个N边形的蛋糕,切M刀,从中挑选一块边数最多的,保证没有两条边重叠。
解题思路:有多少个顶点即为有多少条边,所以直接按照切刀切掉点的个数排序,然后用线段树维护剩下的还有哪些点。
#include <cstdio>
#include <cstring>
#include <vector&