- 博客(13)
- 收藏
- 关注
原创 EC Final 2015(Suffixes and Palindromes-差分约束)
http://blog.csdn.net/skywalkert/article/details/51731556#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForkD(i,k,
2017-11-29 17:15:46 564
原创 CF 894E(Ralph and Mushrooms-Tarjen)
在一个n*m的白板上有若干8联通联通块,每块必须是字母(H,M,Y) 中的一个,统计白板上各字母出现次数。注意各字母字体相同.记录特征值。#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#def
2017-11-29 17:09:50 332
原创 2017 ACM Jordanian Collegiate Programming Contest I(Counting Votes-特征值)
在一个n*m的白板上有若干8联通联通块,每块必须是字母(H,M,Y) 中的一个,统计白板上各字母出现次数。注意各字母字体相同.记录特征值。#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#def
2017-11-16 20:04:50 612
原创 2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest(Dividing Marbles-构造)
有一堆n=2d1+2d2+2d3+2d4n=2^{d_1}+2^{d_2}+2^{d_3}+2^{d_4}个石子。现在每次操作都选择一堆,分成两堆,使每堆至少有一颗石子,之后如果场上有相同数量的石子堆,则只保留一堆。问至少几次操作使石子只剩1个。显然可以先将n化成2进制。 如果1的个数不超过3,可以这样 10101 10101->10000 +100 +1 //2步 10000 -> 10
2017-11-15 06:10:23 1432 4
原创 BZOJ 3503([Cqoi2014]和谐矩阵-gauss消元)
Description我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1。一个元素相邻的元素包括它本 身,及他上下左右的4个元素(如果存在)。 给定矩阵的行数和列数,请计算并输出一个和谐的矩阵。注意:所有元素为0的矩阵是不允许的。Input输入一行,包含两个空格分隔的整数m和n,分别表示矩阵的行数和列数。Output输出包含m行,每行n个空格分隔整数(0或1),为所求矩阵。
2017-11-13 15:54:47 445
原创 LOJ #2290(「THUWC 2017」随机二分图-状态压缩dp)
某人在玩一个非常神奇的游戏。这个游戏中有一个左右各 n (≤15\le 15)个点的二分图,图中的边会按照一定的规律随机出现。 为了描述这些规律,某人将这些边分到若干个组中。每条边或者不属于任何组 (这样的边一定不会出现),或者只属于一个组。 有且仅有以下三类边的分组: 这类组每组只有一条边,该条边恰好有 50% 的概率出现。 这类组每组恰好有两条边,这两条边有
2017-11-09 16:45:28 805
原创 2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017)
A Alien Sunset模拟#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define Rep(i,n
2017-11-07 14:46:39 817
原创 ARC 084(Small Multiple-最短路)
给k≤100000k\le 100000,求k的倍数(必须是正数)中数位和的最小值。考虑在某一位填1相当于对这个数modk的值贡献了viv_i,我们可以处理出所有的viv_i. 注意填2贡献了2vi2v_i,可以视为填了2个viv_i,而且10imodk10^i mod k是循环的。所以可以填无穷次viv_i. 问题变成了填多少次viv_i可以达到k的倍数。 最短路。 注意BFS超时,对m
2017-11-07 00:28:26 502
原创 CF 883D(Packmen Strike Back-吃豆人)
一条序列上有n个空位,上面要么是吃豆人,要么是豆,要么是空位。现在给每个吃豆人指定一个方向,游戏开始后每个吃豆人同时向前移动直到遇到边界后不动。问吃豆人最多能吃几个豆子,已经这个前提下最小花费时间。显然又2个吃豆人就能吃完所有豆子。 二分时间。 dpidp_i表示前i个吃豆人最远能吃到从左端点开始到dpidp_i的豆子。 那么有2种情况。 要么前i−1i-1个吃豆人吃了1~dp[i-1],
2017-11-04 21:00:32 1629 2
原创 BAPC 2014(Highway Hassle-加油站问题)
已知一个连通无向图,其中一些点有加油站(每个加油站油价不同),现在S点有一个油箱大小为t前往T的车。求最小油费花销。经典题.考虑从A加油站前往B加油站,要么在A加满,要么在B恰好用完。因此可以拆点最短路。#include<bits/stdc++.h>using namespace std;#define LL long long#define IN freopen("in.txt", "r"
2017-11-03 23:28:02 362
原创 La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017
A Ambiguous Dates贪心,从小到大取日期#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#def
2017-11-03 22:38:27 770
原创 2017 JUST Programming Contest 3.0
A A Very Hard Question#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define R
2017-11-02 10:39:02 847
原创 POJ 1825/2279(Young/Mr. Young's Picture Permutations-杨氏矩阵和钩子公式)
给出一个n行的矩阵,每一行有a[i]个数,总共有sum个数,要求每一个位置的数必须比上面的数和左面的数大,求总方案数.转自acdreamers 杨氏矩阵又叫杨氏图表,它是这样一个矩阵,满足条件: (1)如果格子(i,j)没有元素,则它右边和上边的相邻格子也一定没有元素。 (2)如果格子(i,j)有元素a[i][j],则它右边和上边的相邻格子要么没有元素,要么有元素且比a[i][j]大。 下
2017-11-02 10:26:14 944
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人