http://hihocoder.com/contest/offers13/problems 题目1 : 风格不统一如何写程序 首先:输入保证组成变量名的单词只包含小写字母. 做法:只要对不同的部分进行修改即可 注意:只有一个单词,两个方法的单词都一样 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> int main() { long n,i,k,…
[题目链接]:http://hihocoder.com/problemset/problem/1501 [题意] [题解] 模拟题 [Number Of WA] 1 [完整代码] #include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i…
#1502 : 最大子矩阵 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该子矩阵中所有元素的和不超过K. 输入 第一行包含三个整数N.M和K. 以下N行每行包含M个整数,表示A. 对于40%的数据,1 <= N, M <= 10 对于100%的数据,1 <= N, M <= 250 1 <= K <= 2147483647 1 <= Aij…
思路: 矩阵快速幂. 实现: #include <iostream> #include <cstdio> #include <vector> using namespace std; typedef long long ll; typedef vector<ll> vec; typedef vector<vec> mat; ; ll n, x, y; mat mul(mat & a, mat & b) { mat c(a.size…
[题目链接]:http://hihocoder.com/problemset/problem/1503 [题意] [题解] 一直在纠结如果没胡的话要扔掉哪一个麻将; 但其实可不用扔的,全部存起来就好了嘛! 最后只要能胡,就把剩余的牌扔掉就好了(上帝视角); 判断一下4个3和1个对子以及7个对子的情况; 其中前者你要枚举是哪两种花色合在一起(相同也可以啦) 然后先组成4个3个的;最后判断能不能有一个对子; 模拟一下就好; [Number Of WA] 1 [完整代码] #include <bits…
[题目链接]:http://hihocoder.com/problemset/problem/1504 [题意] [题解] 可以把二维的坐标转成成一维的; 即(x,y)->(x-1)*8+y 然后就写矩阵乘法吧. 每个点每次能够到达的点是固定的; 把每个点能够到达的点写成一个矩阵的形式; 作为系数矩阵; 求它的n次方 然后初始矩阵a[(r,c)][(r,c)]=1 用它去左乘系数矩阵; 就能得到到每个点的方案数了; 肯定都是不同的方案 直接累计答案就好; 最后注意是枚举到64而不是8了!! [N…
[题目链接]:http://hihocoder.com/problemset/problem/1502 [题意] [题解] 枚举矩形的最上面的行数和最下面的行数(i,j且i<=j); 然后一个变量k枚举最右边的列数; 一个变量l维护在右边的列为k的情况下做坐标的列的列数; 一开始l=1; 然后维护这个矩形里面的数字和小于等于k就好; 因为只涉及到一个列里面的元素的增删,所以只要在竖列上预处理出前某一列前i行的前缀和就好: O(n^3)的复杂度 [Number Of WA] 0 [完整代码] #i…
[题目链接]:http://hihocoder.com/contest/offers13/problem/2 [题意] [题解] 算出1..250*250这些数字每个数字的所有因子(成对的那种,即x*y=number),这些成对的因子作为我们要枚举的矩形的长度; 当然加个限制,x<=250,y<=250; 这样1..2502里面总共也只有250个左右的因子; 可以了! 然后枚举每个格子作为矩形的右下角; 用得到的250个左右的成对因子作为矩形的长宽; (因为要求格子的数目最多,所以在处理出因子…
描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望选择若干道不同的菜品,使得总价在不低于X元的同时尽量低. 你能算出这一餐小Ho最少消费多少元吗? 输入 第一行包含两个整数N和X,(1 <= N <= 20, 1 <= X <= 100) 第二行包含N个整数A1, A2, ..., AN.(1 <= Ai <= 100)…
[Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素,从小到大放在队列中,再把b按顺序放入另一个队列中,每次取出两队列中较小值即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; ]; queue<int>q1, q2; vector<int&g…