csp

2019 年 CSP 模拟练习赛

拜拜、爱过 提交于 2019-11-29 21:46:43
2019 年 CSP 模拟练习赛 3.0 小时完成 (请选手务必仔细阅读本页内容) 题目名称 矩阵游戏 割韭菜 翻硬币 程序文件名 matrixgame leeks coins 输入文件名 matrixgame.in leeks.in coins.in 输出文件名 matrixgame.out leeks.out coins.out 每个测试点时限 1 sec 2 sec 1 sec 测试点数目 10 10 10 每个测试点分值 10 10 10 内存限制 256m 256m 256m 题目类型 传统型 传统型 传统型 提交源程序文件名: 对于 Pascal 语言 matrixgame.pas leeks.pas coins.pas 对于 C 语言 matrixgame.c leeks.c coins.c 对于 C++ 语言 matrixgame.cpp leeks.cpp coins.cpp 注意事项 1、文件名(程序名和输入输出文件名)必须使用小写。 2、除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。 3、 C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0 来源: https://www.cnblogs.com/CXYscxy/p/11536000.html

CCF CSP 201503-4 网络延时

血红的双手。 提交于 2019-11-29 20:06:37
CCF计算机职业资格认证考试题解 系列文章为 meelo 原创,请务必以链接形式注明 本文地址 CCF CSP 201503-4 网络延时 问题描述   给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。   当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。 输入格式   输入的第一行包含两个整数n, m,分别表示交换机的台数和终端电脑的台数。   第二行包含n - 1个整数,分别表示第2、3、……、n台交换机所连接的比自己上一层的交换机的编号。第i台交换机所连接的上一层的交换机编号一定比自己的编号小。   第三行包含m个整数,分别表示第1、2、……、m台终端电脑所连接的交换机的编号。 输出格式   输出一个整数,表示消息传递最多需要的步数。 样例输入 4 2 1 1 3 2 1 样例输出 4 样例说明   样例的网络连接模式如下,其中圆圈表示交换机,方框表示电脑:   其中电脑1与交换机4之间的消息传递花费的时间最长

【csp模拟赛1】铁路网络 (network.cpp)

天大地大妈咪最大 提交于 2019-11-29 17:22:24
【题目描述】 在暑假来临之际,小 Z 的地理老师布置了一个暑假作业,让同学们暑假期间 了解一下 C 国的铁路发展史。小 Z 在多番查证资料后发现,C 国在铁路发展初期, 铁路网络有着一个严密规整的结构:C 国的 N 个城市按层级分为首都、省会、省 辖市……由于在铁路发展初期,建造铁路花费巨大,为了避免不必要的浪费,铁 路网络的建设保证了任意两个城市相互连通,且仅有一条连通路径。 随后,小 Z 还查阅到历年来铁道部向全国上下发布的大小消息。由于多年来 C 国货币系统保持健康的 3%通胀率带来了稳定的物价上涨,铁道部发布的消息中 不乏对某段连接城市 u 与城市 v 铁路的价格上涨 w 元的通知。于是小 Z 不禁好奇, 在某些特定时间,在某个城市 p 的管辖区域内,任意两个城市间的铁路通勤的费 用和是多少。 【输入格式】 第一行输入两个正整数 N,Q,分别表示城市的数目和操作的数目。 接下来有 N–1 行,第 i 行是两个正整数 p[i], c[i],表示城市 p[i]是城市 i 的父亲结点,且连接 p[i]和 i 的铁路的初始收费为 c[i](1≤c[i]≤1000)。 再接下来有 Q 行,每行是如下两种类型之一: INC u v w (u, v, w 都是整数,且 1≤u, v≤N, 0≤w≤1000) ASK p (p 是整数,且 0≤p≤N) 意义如题目所述。 【输出格式】

【csp模拟赛1】不服来战 (challenge.cpp)

大兔子大兔子 提交于 2019-11-29 17:21:48
【题目描述】 最近小 Z 和他的朋友都迷上了一款手机游戏:不服来战。 游戏的设定十分简单,在游戏开始时,会给出一排共 N 个灯,有的灯是开着 的有的是关着的,每个灯都有一个分数。而玩家可以进行任意次操作,每次操作 改变连续 K 盏灯的开关状态。尽管机智如小 Z 也总是没法得到最高分,没法把他 的朋友 PK 下来。于是他来向你请教,希望知道在不同情况下,最高分分别是多 少。 【输入格式】 第一行,一个正整数 T,表示测试数据组数。 对于每组测试数据: 首先是一行两个正整数 N,K,意义如题目所述。 接着是 N 个数依次表示 1~N 每盏灯的开关状态。每个数是 0 或 1,分别 表示 这盏灯初始时是关的或开的。 最后是 N 个非负整数依次表示 1~N 每盏灯亮着的得分。 【输出格式】 对每组测试数据输出一行。表示最大的得分。 【样例输入】 3 3 2 0 1 1 3 2 4 10 1 0 0 1 0 1 0 0 1 0 1 1 1 1 3 4 3 4 5 1 5 10 7 1 1 1 1 1 1 1 1 1 1 5 5 3 3 4 3 5 1 1 3 【样例输出】 7 28 33 【样例解释】 第一组数据:翻转前 2 盏灯是最优方案; 第二组数据:你可以把所有的灯点亮; 第三组数据:不做任何操作是最优方案 思路: 不从图的角度思考也可以得出正解。 考虑操作 i 和操作 i+1 同时按下

【CSP】201503-1 图像旋转

烈酒焚心 提交于 2019-11-29 14:07:38
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 样例输入 2 3 1 5 3 3 2 4 样例输出 3 4 5 2 1 3 评测用例规模与约定 1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。 C++ AC # include <iostream> using namespace std ; int arr1 [ 1005 ] [ 1005 ] ; int main ( int argc , char * * argv ) { int n , m ; cin >> n >> m ; for ( int i = 0 ; i < n ; i ++ ) { for ( int j = 0 ; j < m ; j ++ ) { cin >> arr1 [ i ] [ j ] ; } } for ( int i = m - 1 ; i >= 0 ; i -- ) { for ( int j = 0 ; j < n ; j ++ ) { cout

ccf csp—201903-4 消息传递接口

淺唱寂寞╮ 提交于 2019-11-29 06:19:22
题目略 思路:对于任何一个时候,只看每个进程的第一条指令就可以判断是否会锁死了。如果有一对进程的第一条指令配对成功,那么就执行这两条指令(出队列);相反所有进程的第一条指令都配对失败,那么就已经死锁了。然后每次都这么判断就好了。 整体框架如下 flag=1; while(flag){ flag = 0; if(有配对成功) flag=1; } output(flag); 数据结构方面,我是用一个队列数组来模拟n个进程,每个进程对应一个队列 我遇到的坑: 输入方面,fgets是会读取\n,即换行符的,我就一直认为每一行的末尾一定是\n,结果一直90分,在测试了多次之后(心累),结果应该是因为最后一行没有\n吧,就是最后一行数据应该没有换行符。处理一下就满分了。 #include <stdio.h> #include <stdlib.h> #include <queue> #include <string> #include <string.h> using namespace std; const int MAX_N = 10000 + 100; const int MAX_LINE = 80;//(1+5+1)*8 经测试,这里居然随便写?我写长度为1照样通过100分 int T,n; struct Cmd{ int op,to; public: Cmd(char* str){

CSP 内容安全策略( content security policy )

会有一股神秘感。 提交于 2019-11-29 01:03:42
1,背景 跨域脚本攻击,网络安全漏洞,于是就有了内容安全防护策略,从根本上解决这个问题。 2,启用CSP的方式有两种 a, 修改meta标签,http-equive b, 服务器响应头设置 3,主要的CSP策略有 5 种 res.writeHead(200, { 'Content-Type': 'text-html', 'Content-Security-Policy': 'default-src http: https:' }); a, 不允许使用内联脚本或样式 'Content-Security-Policy': 'default-src http: https:' b, 允许加载指定域名下的文件资源 'Content-Security-Policy': 'default-src \'self\'' 'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/' c, 防止表单提交时访问站点 <form action="https://baidu.com"> 会跳转到百度页面 <button>click me</button> </form> 'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/;

csp 201709-2 优先队列模拟

霸气de小男生 提交于 2019-11-28 20:18:21
数据规模:    用优先队列对各个事件的发生先后记录即可: #include<iostream> #include<queue> using namespace std; int key[1001]; struct node { int no; int begin; int end; int type;//表示借,1表示时在还 node(int no, int begin,int end, int type):no(no),begin(begin),end(end),type(type) { } friend bool operator <(node a, node b) { if(!a.type) { if(!b.type)//都是借 { return a.begin>b.begin; } else//借遇到还的 { return (a.begin>=(b.begin+b.end)); } } else { if (!b.type) { return (a.begin+a.end)>b.begin; } else { //都是还 if((a.begin+a.end)>(b.begin+b.end)) return true; else if((a.begin+a.end)==(b.begin+b.end)) return a.no > b.no; else return

8.25重庆南开CSP信心赛

a 夏天 提交于 2019-11-28 13:13:02
8.25重庆南开CSP信心赛 A.填数字 时间限制 :1s 空间限制 :128MB 题面描述 信竞队的同学们在一个 N*N 的方格矩阵上填数字。开始时,所有矩阵里的数字都 是 0 。 同学们一共给 个子矩阵填了数字,每次填的数都是从 这区间中 选一个数字,然后给对应矩阵全部填上该数字。比如: 第 1 步,选了一个子矩阵,将数字 2 填上: 2 2 2 0 2 2 2 0 2 2 2 0 0 0 0 0 第 2 步,选了一个子矩阵,将数字 7 填上: 2 2 2 0 2 7 7 7 2 7 7 7 0 0 0 0 第 3 步,选了一个子矩阵,将数字 3 填上: 2 2 3 0 2 7 3 7 2 7 7 7 按此规则填下去,直到 1 到 中每个数字都被使用过一次 ( 每个数字只能被使用 一次 ) 。 现在给出最终的矩阵,但同学们已忘记第一步是选的哪个数子来填的。 请你帮忙计算第 1 步填的数字可能是哪些?输出第一步填写可能的数字的个数。 输入格式 第一行,一个整数 N 接下来一个 N*N 的数字矩阵,表示填写结束时,矩阵的样 子。 输出格式 一个整数,表示第一步填可能的数字个数。 样例输入 1 4 2 2 3 0 2 7 3 7 2 7 7 7 0 0 0 0 样例输出 1 14 样例输入 2 4 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 样例输出 2 15

Web安全 - 跨域与CSP

烂漫一生 提交于 2019-11-28 06:08:47
跨域 常见于前后端分离的项目 主要用于保护后端资源,尤其是接口,避免谁都能访问 CSP 不管是否前后端分离,都有可能涉及 主要用于保护前端被攻击后胡乱访问其他非法站点的资源 来源: https://www.cnblogs.com/wyp1988/p/11396481.html