题意:给你一个n*m的网格,部分网格有数字,要求奇数的数字要和偶数的数字连在一起,空白的数字要成环,给你每个格子连接上space std;
思路:将式子化开其实就是求(n+m-1)*s1-s2的最小值,s1表示各个格子的平方和,s2表示和的平方,留意到数据范围较小,令dp[i][j
题意:求去掉某一个长度为L的子串的LIS思路:画画图其实比较显然的想法是去掉这个区间的时候答案是右边以第一个数开头的LIS+左边最LIS即可,将a[i]取负,
题意:给你D(D思路:直接从D+1算起,如果1的数目>s2那就跳过,如果s1>sum1,那么就将这个数的低位s1-sum1个0补成1,那么就是最优的了#includeusing namespace std;#define LL long longint a[40];int main(){ int T,cas=1; scanf("%d",&T); while(
题意:给你一个2X2的
题意=a[k],dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[
思路:二维RMQ#include#include#in
思路:简单的数塔DP#include #include #include using namespace std;int a[("%d",&n);
议先在纸上自己试一下看看,有点抽象,可以这样理解,如果更新区间[3,5],那么我等于在3这个点+1,代表从3之后所有的点都增加
题意:在X,Y坐标系中有N(N离开..就会消失..问有哪些冰块可以作为集合点..就是所有多只能有Mi企鹅从这跳出去,所以从i到i+
题意:有N个女孩要与N个男孩玩配对游戏.每个女孩有一个可选男孩的集合(即该女孩可以选自己集合中的任意一个男孩作为
题意:和HDU3081一样的题意,只不过多了一个条件,每个女孩除了能选自己喜欢
题意:有S1到Sn这n个勇士要和X1到Xn这n个勇士决斗,初始时,Si的决斗对象是Xi.
题意:中文题思路:其实我们不去考虑N,我们只考虑最优切割策略: 首先肯定是尽量的小即1、2 既要不相等,又不能构成三角形,即每次为当前数列中最大的两项的和 那么,构成的数列为1,2,3,5,8,...... 这样我们只要求最接近且小于等于N的Fibonacci数的项数即可。#includ
题意:二维平面给定n个点的坐标,然后要你输出每个点的“等级“。每个点的
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define maxn 1
题意:有一个n个整数的排列,这n个整数就是0,1,2,3...n-1这n个数(但不一定按
题意:首先每次只能交换相邻的两头牛,并且最后要求升序排列,所以最后整
思路:简单最短路#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; const int inf = 1<<30; int T,S,D,n; int map[1111][1111]; int vis[1111],cast[1111]; int
题意:你有一张长宽为x,y的卡片同时有n个盒子,长宽分别为xi,yi。然后问你卡片最多塞多少层盒子并且把这些盒子按照从里到外
POJ1837 DP题题目一开始看了N久…意思大概是有一个天平
思路:先暴力打个表,然后找规律...#incl
思路:线段树求最大值减最小值,每个结点分别维护最大值和最小值即可。#include #include #include #include #inclu
POJ1787一开始还没看多重背包…以为是完全背包加个限制条
思路:令dp[i][j]为做了i天用了j时间,然后随便转移一下就可以了#include #include #include #include #include #include #include #includ
题意:第一眼看到这题目觉得神题啊...其实题目给的s[i]压根不用管的....总共有n个
思路:相当于一个裸的多重背包#include#includeusing namespace std;int a[20],num[20],dp[50];int main(){ int T; scanf("%d",&T);
思路:我们定义f(n)为n个人抽到的情况总数。对于第n个人,他要不抽中自己,即要抽中其他n-1个人,有n-1种可能,接下来讨论下
题意:给你一个网格,网格上的一些位置上有一只蜥蜴,所有蜥蜴的最大跳跃
思路:推公式题....#includedouble a[3005],c[3005];double sum;int main(){ int n; while (scanf("%d",&n)!=EOF) { scanf("%lf%lf",&a[0],&a[n+1]); for (int i= 1;i<=n;i++) scanf("%lf",&c[i
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号