自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

傻傻分不清、

想更靠近、

  • 博客(17)
  • 收藏
  • 关注

转载 ACM 比赛ubuntu配置

每年都指导新生配置ubuntu太麻烦了,留给帖方便大家看吧首先邀请赛级别以上的比赛都是用ubuntu的,所以我们平时的组队训练也十分建议使用ubuntu系统,这里给出配置过程首先是ubuntu 12.04的下载地址:http://pan.baidu.com/s/1kTkcmxD解压之后双击wubi.exe就可以安装了,像装普通软件一样,最好装在一个空磁盘里,从其他盘分3

2016-10-31 12:38:14 1271

原创 矩阵专题

参考矩阵资料:资料首先是一道入门题NYOJ623就是求两个矩阵的乘积, 数据又给的很友好所以#include#includetypedef long long ll;const int qq = 55;struct rec{ ll mar[qq][qq]; rec(){ memset(mar, 0, sizeof(mar)); }}a, b;void mult

2016-10-28 20:49:30 251

原创 codeforces 589J

题意:有一个清洁机器人,他有三种操作  第一种:打扫当前单元, 第二种是按着当前机器人的方向走一格然后回到第一种操作, 第三种是机器人的方向按着顺时针转90度然后回到第二步,问最终能清洁多少个单元。思路:刚开始又理解错题意, 因为转一次之后如果不能走就不能继续走下去了, 其实是可以的, 定义一个vis[i][j][d]  表示机器人是否在 i 行 j 列 方向为 d 的时候访问过, 如果访问过

2016-10-27 10:31:46 283

原创 HDU 5072

题意:给出n个数,要你选出三个数, a,b,c  两两之间要么互质, 要么都不互质 求有多少个这样的三元组思路:直接求肯定不行,但我们考虑反面就只有一种情况,选出的三元组存在一组互质一组不互质 那么单色三角形模型+容斥做咯,但是在前面还要预处理能被某个因子整除的数的个数#include#include#include#include#include#include#includ

2016-10-12 08:57:37 452

原创 扩展欧几里德模版

参考资料:Arimura          |        kasumiint gcd(int a, int b){ return b==0?a:gcd(b, a%b);}void exgcd(int a, int b, int &x, int &y){ if(b==0){ x = 1; y = 0; return; } exgcd(b, a%b, x,

2016-10-11 11:02:54 165

原创 HDU 4135

题意:求a到b之间与k互质的个数思路:容斥原理#include#include#include#include#includeusing namespace std;typedef long long ll;const int qq = 10005;int num;int prime[qq];void Analyze(ll x){ for(ll i=2

2016-10-10 23:29:18 402

原创 容斥原理求1到n与k互质个数

参考博客:传送门题目:HDU 4135此处的k#include#include#include#include#includeusing namespace std;typedef long long ll;const int qq = 10005;int num;int prime[qq];void Analyze(ll x){ for(ll i=2;

2016-10-10 23:21:23 1614

原创 HDU 5071

这题不难、处理好相应的状态就行首先说一下几点要注意吧、 (1) words 类型要用 long long  题目说的是所有参数小于1e9、但加起来可能就超了(2) Top 这只是一种状态,不需要把它放进队列的头部,而且题意也没说,果然英文不好的我....就容易误解(3) 注意close操作的时候如果关闭了一个Top状态的要记得及时把状态清除(4) 每次操作后面有一个小点 

2016-10-10 16:02:01 338

原创 codeforces 369C

题意:给出一棵树, 边有两种 类型1, 代表路是好的, 类型2代表路是坏的, 我们要修复所有的路, 当我们修复结点x的时候, 那么它到结点1之间的所有路都会被修复,求最小的修路节点的集合思路:对于节点x,它到父节点的边为类型2,那么如果节点x的所有子树都不存在类型为2的边,则将节点x加入子集,否则任意一个子树中的边得到维修,x到父节点的边也一定会被维修,这种情况x就不加入子集。#inclu

2016-10-09 12:40:16 809

原创 codeforces 374C

题意:给出一张n*m的图,找出顺序为DIMA的路径, 可以循环也就是说可以DIMADIMA.....  如果形成回路就Poor Inna!, 如果找不到一组DIMA就Poor Dima!, 如果能找到输出找到DIMA的最大循环次数。思路:记忆化搜索,判断回路的话直接判断是否访问过就行了#include#include#include#include#includeusing na

2016-10-09 11:53:03 382

原创 Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)

A. Checking the Calendar题意:给出两个周几, 问是否有这样一个non-leap year, 在一年中 某一个月的第一天等于第一个给出的周几, 这个月的下一个月的第一天等于第二个给出的周几、我又他喵的少读题了、 以后这两个周几可以互换判断... 结果可想而知#include#include#include#include#include#include

2016-10-09 10:36:55 230

原创 计数排序模版、

参考:百度百科#include#includeconst int qq = 2100000;int num[qq];int rank[qq];int c[qq];int main(){ int n,m; while(scanf("%d%d", &n)){ for(int i=0; i<n; ++i){ scanf("%d", num+i); c[num[i]]+

2016-10-07 12:43:02 169

原创 codeforces 366C

题意:给出n,k  然后给出n个水果对应的taste和calories  要求选出一些水果 满足          ,在满足这个的情况下求sigma(a[j])的最大值、思路:令bi=ai-k×bi,就是sigma(b[i])=0,sigma(a[i])最大。把b[i]当体积,a[i]当价值,这样就形成了一个01背包、然后设置一个偏移量就好、#include#includ

2016-10-04 16:09:48 683

原创 codeforces 364A

题意:给出一个a,然后给出一行数字,数字的个数小于4000,数字的长度为len,这些数字组成一个n*n的方阵,方阵中 bij = si*sj  ,问有多少矩阵的和是等于a的思路:由这个方阵的特性 ,我们知道 每一行都是成比例的,也就是说 第i行 bik = si * sk, 就是si去乘给出的n个数, 而且矩阵又是连续的,那么意味的一个矩阵的和sum = (si +.... +sj)*(s

2016-10-04 14:22:24 225

原创 codeforces 358C

题意:有三种数据结构,栈 队列  双端队列, 每次遇到一个非0的数就可以把这个数放到 栈顶or队列尾or 双端队列的前面或者尾部,   当遇到0的时候最多可以提取三种数据结构中的一个数字, 栈顶的数 + 队列的头部 + 双端的头或尾,  使得每次提取的结果最大,且提取完后三种数据结构全部清空。请模拟整个操作过程。思路:因为每次遇到0之后数据会全部清空,那也就是说我们只要找到0之前的最大的三个数

2016-10-01 20:10:28 326

原创 codeforces 361C

题意:给出n,m代表有一个数列有n个元素,m次操作, 操作类型1 代表从l dao r内的所有元素都加上d,  操作类型2 代表从l 到 r内的最大值是 x,求任何一个满足题意的数列、思路:实际上需要求出每一位上可能的最小数值,  就如题解上说的 a[i] + diff[i]    a[i] #include#include#include#include#includeusin

2016-10-01 19:32:19 208

原创 codeforces 362C

题意:给出一个数n,然后给出n个数,问交换其中某两个数所形成的新的数列得到的逆序数最少,输出最小逆序数并且输出有几种交换方式、思路:看看题,n的最大只有5000,n^2的算法还是能挺过的、  我们发现交换两个元素a b实际上逆序数改变只会来源于a b之间的数, 以及 a b两个数本身,如果我们知道了a b两个数之间的数和a b形成的逆序数,那么我们就可以利用容斥原理算出交换后产生的逆序数。

2016-10-01 13:43:04 504

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除