[20191005机房测试] Silhouette
有一个n × n的网格,在每个格子上堆叠了一些边长为1的立方体
现在给出这个三维几何体的正视图和左视图,求有多少种与之符合的堆叠立方体的方案
两种方案被认为是不同的,当且仅当某个格子上立方体的数量不同
输出答案对1e9 + 7取模的结果。 给出的是这一坨正方体们的正视图和左视图 开始想的是先求出每一个位置可能的数量范围 求出全集,然后减去每一行/列不符合的拼法 然而这样减了会减多,于是再加上多减的……这就是容斥了 时间复杂度巨大,根本没有过的可能 于是我们考虑确定从某一个方向看过去的视角符合题
vue中的组件化开发
全局注册: Vue.component('my-component',componentObj) 局部注册: components:{ myPartComponent:componentObjFather } 注意:注册时如果写驼峰 使用标签时要将有驼峰处换成'-',如果不写驼峰可以这样写('my-part-component':componentObj) vue2.x语法糖注册 正常在注册之前需要先进行下面这一步Vue.extend const componentObjFather =
定根最小树形图 朱刘算法 luogu P4716
https://www.luogu.org/problem/P4716 #include<bits/stdc++.h>
#define ll long long
#define rep(ii,a,b) for(int ii=a;ii<=b;++ii)
#define per(ii,a,b) for(int ii=b;ii>=a;--ii)
#define forn(i,x,g,e) for(int i=g[x];i;i=e[i].next)
#define IO ios::sync_
(转) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128)
我用的方法: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128) 如果出现编码问题:类似错误如下UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128),这是由于python2中的编码bug,需要在python目录/
[BalticOI 2011 Day1] Switch the Lamp On
题目传送门 第一眼看这题,我问教练:是不是用f[i][j]表示左上角坐标为1,1,右下角坐标为i,j的矩形能否从左上角通到右下角。。。教练用关爱傻逼的眼神看了我一眼就走开了。。。 后来才发现是道最短路。。。Fa♂Q 把每一个格点当做节点(这里编号用二维更方便,我用的一维) 初始状态的连接权值为0,旋转的之后的连接权值为1 跑一遍dij堆优化orSPFA即可(dij堆优化我吸氧才过的。。。) 代码:. #pragma GCC optimize(3)
#include<bits/stdc++.h
【题解】Luogu P3509 [POI 2010] ZAB-Frog 倍增dp
单调队列处理第k远的点 倍增跳点 滚(动数组)一维空间就能开下了 注意$m≤10^{18}$的读入 code 1 #include <bits/stdc++.h>
2 using namespace std;
3 namespace gengyf{
4 #define ll long long
5 const int maxn=1e6+10;
6 inline ll read(){
7 ll x=0,f=1;
8 char c=getchar();
20172018-acmicpc-southeastern-european-regional-programming-contest-seerc-2017-en A - Concerts
题意就是给一个字母序列a,以及一个另外一个字母序列b,你需要b中找到字母序列a,并且要求对于在b中的字母序列a,每个单词都需要满足相应的距离 其实很简单,我们利用DP[i][j]代表a已经匹配i个位置,当前是在b串的j位置,这样我们很容易写出转移方程 dp[ i ] [ j ] +=dp[ i-1 ] [ j - time[ i ] -1] dp[ i ] [ j ] +=dp[ i-1 ] [ j ] 第一个式子的意思是第 i 个位置匹配成功,是由第 i - 1匹配成功,并且减去a[i-1]
python基础-----集合与函数
字符串 数字 字典 列表 元组 可变不可变: 1.可变:列表、字典 2.不可变:字符串、数字、元组 访问顺序: 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射:字典 存放元素个数: 容器类型:列表,元组,字典 原子:数字,字符串 #集合 1.不同元素组成 2.无序 3.集合中元素必须是不可变类型(字符串,数字,元组) #添加 add # 随机删 pop # 指定删 remove (删除元素不产在会报错) #discard (删除元素不存在不会报错) #求交集 python_1
#(树形DP+基环树)洛谷P2607 [ZJOI2008]骑士(省选/NOI-)
题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶。 骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾。每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),他是绝对不会与自己
【纪中受难记】——C2Day2:dp不能
败在了dp上。 100/0/100/0 1792. 教主的花园 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Detailed Limits Goto ProblemSet Description 【问题背景】 LHX教主最近总困扰于前来膜拜他的人太多了,所以他给他的花园加上了一道屏障。 【问题描述】 可以把教主的花园附近区域抽像成一个正方形网格组成的网络,每个网格都对应了一个坐标(均为整数,有可能为负),若两个网
Educational Codeforces Round 73 (Rated for Div. 2) B. Knights(构造)
链接: https://codeforces.com/contest/1221/problem/B 题意: You are given a chess board with n rows and n columns. Initially all cells of the board are empty, and you have to put a white or a black knight into each cell of the board. A knight is a chess p
Future Failure CodeForces - 838C (博弈论,子集卷积)
大意: 两人轮流操作一个长$n$, 只含前$k$种小写字母的串, 每次操作删除一个字符或者将整个串重排, 每次操作后得到的串不能和之前出现过的串相同, 求多少种串能使先手必胜. 找下规律发现$n$为奇数必胜, 否则假设$a_i$为字符$i$出现次数, 如果$\frac{n!}{a_1!a_2!...a_k!}$为奇数则必败 $n!$中$2$的幂次为n-__builtin_popcount(n) 所以必败就等价于$a_1+...+a_n=a_1|...|a_n$ 设$f_{i,j}$表示前$i$
iter方法读取文件的例子
def iter_file(path, size=1024):
with open(path, "rb", ) as f:
for data in iter(lambda: f.read(size), b''):
yield data
for row in iter_file("manage.py"):
print(row) —— 用迭代器去读取文件中的内容,防止文件太大一次性读取的话占用过大内存! 下面这样一次性读取的方式
DreamWeaver CC使用笔记
在Dreamweaver CC中换行有两种: 第一种是在设计视图中直接回车,对应的代码是<p>标签,即新生成一个段落。 (注:在DreamWeaver CC编辑的代码中,按下回车相当于 ) 第二种是在设计视图中输入shift+Enter ,即所谓的软回车,对应的标签是<br>,这种换行后输入的文字和换行前的文字被视为同一段落。
为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数
将可能会被继承的父类的析构函数设置为虚函数,可以保证当我们new一个子类,然后使用基类指针指向该子类对象,释放基类指针时可以释放掉子类的空间,防止内存泄漏。 C++默认的***析构函数不是虚函数是因为虚函数需要额外的虚函数表和虚表指针,占用额外的内存***。而对于不会被继承的类来说,其析构函数如果是虚函数,就会浪费内存。因此C++默认的析构函数不是虚函数,而是只有当需要当作父类时,设置为虚函数。 C++中析构函数的作用 析构函数与构造函数对应,当对象结束其生命周期,如对象所在的函数已调用完毕时
在linux设置/etc/vimrc 将vim 中后缀.sh的文件 的前几行进行默认输入
输入vim test.sh 新建后缀sh的文件,效果如下: 具体/etc/vimrc配置为: if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setline(2,"#") call setline(3,"#*************************************") call setline(4,"#Author: hushuning") call setline(5,"#QQ: 36027102") c
2019-ccpc秦皇岛现场赛
https://www.cnblogs.com/31415926535x/p/11625462.html 昨天和队友模拟了下今年秦皇岛的区域赛,,, (我全程在演 题目链接 D - Decimal 签到题,,, (感觉在cf上做过,, (然后写反输出白白wa一发,,,,,emmmmmmmm F - Forest Program 这题我感觉是第二道签到题,,,很简单,,但是我一个人读完题后就想着怎么写代码,,,然后wa了无数发才反应过来还要考虑树边的情况,,, 丧失理智 ,,,, 题意就是给一个
今日推荐
周排行