
水题/暴力
文章平均质量分 51
_夜风
我好懒怎么办
展开
-
nyoj 36
//这一题是 nyoj 36 是一道求最长公共子序列的题,也是用dp做出来的核心代码也就是一句,题目大概思路是先找到两组字符串里面相同的字母在二维数组里面更新每次比较过后dp的值,空想很难理解,自己在纸上画画就知道了实在不行就把那段代码记下来。。。还有我一直都不明白为什么我把dp数组放在主函数和while里面编译不过,而且我一直都怀疑二维数组没赋初值,可以显示初始值,那还要原创 2014-12-11 14:38:37 · 404 阅读 · 0 评论 -
poj 1595
#include #define N 10010using namespace std;int a[N],b[N];int prime(int a){ int i; for(i=2;i*i<=a;i++) if(a%i==0) return 1; return 0;}int main(){原创 2014-12-11 17:40:16 · 571 阅读 · 0 评论 -
题目忘了
#include #include #include using namespace std;int cmp(int a,int b){ return a>b;}int main(){ int i,t,a[10010]; cin>>t; for(i=0;i<t;i++) cin>>a[i]; sor原创 2014-12-11 17:41:24 · 424 阅读 · 0 评论 -
一道找朋友的问题
以前写的.....贴出来,题目意思大概是找a,b两个人是否有关系... #include #include using namespace std;bool Find;int n,m,flag[30],M[30][30];void ss(int x,int y){ flag[x]=1; for(int i=0;i<=26;i++)原创 2014-12-10 22:53:26 · 686 阅读 · 0 评论 -
背包问题小结
#include #include using namespace std;int main(){ int i,j,n,m,v,c[100100],w[100100],cnt[50001]; cin>>n; while(n--) { cin>>m>>v; for(i=1;i<=m;i++)原创 2014-12-10 23:00:57 · 435 阅读 · 0 评论 -
nyoj 623
#include using namespace std;int main(){ int a[51][51],b[51][51],c[51][51],i,j,k,l,m,n; while(cin>>m>>n>>k,m+n+k>0) { for(i=1;i<=m;i++) for(j=1;j<=n;j++)原创 2014-12-11 15:03:39 · 394 阅读 · 0 评论 -
hdu 2111
#include #include using namespace std;struct money{ int s; int v;};bool cmp(money a,money b){ return a.s>b.s;}int main(){ money M[101]; int n,m,i; while(cin>>n&&n) {原创 2014-12-11 17:28:54 · 471 阅读 · 0 评论 -
hdu 1205
#include int a[1005000];int main(){ int t; scanf("%d",&t); while(t--) { long long sum=0; int Max=0,i,n; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); sum+原创 2014-12-11 12:44:04 · 331 阅读 · 0 评论 -
nyoj 17
// nyoj 17 代码如上,用的是dp,总的来说就是对一个字符串从末尾开始比较,设定一个数组,存放每个单调字串的最大长度,最后比较。。。//要注意的就是里面if语句对于每次字符比较后,更新数组,自己在纸上画画就清楚了。。。 #include #include using namespace std;int main(){ int i,原创 2014-12-11 14:37:30 · 442 阅读 · 0 评论 -
hdu 1087
hdu 1087这道题是用dp做出来的,也算是很巧妙的方法。。。。思路:首先第一个for遍历1-n,这个时候先设一个flag=0然后在遍历从1到i,因为题目求得是单调最长序列的和所以j每次都要在i前面,然后在满足啊a[i]>a[j]的情况下用flag记下j前面序列和的最大值,在遍历完j后此时flag存储了1-j中最大的sum和,此时,只要一步把a[i]加上,就可以表示s原创 2014-12-11 14:54:34 · 509 阅读 · 0 评论 -
题目忘了
#include #include #include #define LL __int64using namespace std;bool ss(LL a){ LL i; for(i=2;i*i<=a;i++) { if(a%i==0) return true; } return原创 2014-12-11 17:40:08 · 404 阅读 · 0 评论 -
题目忘了..
#include using namespace std;int prime(int a){ int i; for(i=2;i*i<=a;i++) if(a%i==0) return 1; return 0;}int main(){ int i,m,n,p,q,t; while(cin>>原创 2014-12-11 17:38:33 · 460 阅读 · 0 评论 -
单调最长递增子序列
// 再一次复习 最长单调递增子序列dp求法// 以前有过一次专门的总结,现在有点忘了,拿出来看看// 目前为止,我做过的这类题目就1.最长子序列和 2.字母和数字单调最长序列。。。后面继续总结 #include #include #include #include using namespace std;int main(){ char原创 2014-12-11 12:46:59 · 407 阅读 · 0 评论 -
hdu 5105
题意: y=|a*x^3+b*x^2+c*x+d| 求y的最大值?题目是bc上的,之前写的时候,没考虑0的情况(太笨了)。。。。水题吧。。。。AC代码:#include #include #include #include #define max(a,b) (a>b)?a:b;using namespace std;double a,b,c,d,l原创 2014-12-10 14:02:46 · 525 阅读 · 0 评论 -
nyoj 37
//nyoj 37 代码有点乱,和最长公共子序列很像,只是多加了一个数组,之前调用函数,一直超时,可是我看了下,为什么用一个整形数组存放倒置字符串竟然可以AC,我测试了下数据,打印出来的是一串地址,为什么为什么为什么啊。。。。#include #include #define Max(a,b) a>b?a:busing namespace std;int dp[100原创 2014-12-11 12:35:33 · 505 阅读 · 0 评论 -
N!水题
//题目是求N!的问题,思路:设定一个整形数组来存放每次计算过后的值有两个for循环,第一个for循环每次加进一个数然后在第二个for循环里面计算出此时的阶乘,比如9999,先给出i=2在第二个for循环里面计算出2的阶乘,保存在数组里,然后i=3,在计算3的阶乘,后面以此类推。。。#include#include #include#include#define N原创 2014-12-11 12:38:24 · 472 阅读 · 0 评论 -
hdu 1003
这个是暴力枚举求解的//hdu1003 这一题的代码我也不愿意整理了,乱就乱吧这一道题已经写了至少五遍了,也没什么好说的了,核心代码就是第二个for那里自己在纸上写写就清楚了,后面一个for找最大,然后依据这个最大的可以推出是从哪里开始的,根据就是每次往回加一个然后判断和是否等于最大的,在纸上写写就清楚了。。。。 #include #include u原创 2014-12-11 14:38:00 · 543 阅读 · 0 评论 -
母函数&&排列(模板)
#include #include using namespace std;int main(){ int n,i; int a[4]={1,2,3,4}; //cin>>n; while(next_permutation(a,a+4)){ for(i=0;i<4;i++) cout<<a[i]<<" ";原创 2014-12-11 15:04:01 · 334 阅读 · 0 评论 -
hdu 2106
#include #include #include using namespace std;int main(){ int sum,m,len,t,i,k,s; char a[1001]; while(cin>>t) { sum=0; while(t--) { cin>>a原创 2014-12-11 17:30:30 · 413 阅读 · 0 评论 -
hdu 2544
#include #include using namespace std;const int INF=0x3f3f3f3f;int dis[110][110];int main(){ int i,j,k,n,m,p,q,s; while(scanf("%d%d",&n,&m)!=EOF,n+m) { for (i=1;i<=原创 2014-12-11 17:34:32 · 372 阅读 · 0 评论 -
nyoj 2
#include #include #include #include using namespace std;char a[10001];int main(){ int i,t,flag,n; cin>>t; getchar(); stack s; while(t--) { cin.getl原创 2014-12-11 17:37:25 · 406 阅读 · 0 评论 -
hdu 2190
//hdu2190 水题 题意是给一个n*3的教室,用1*1,2*2的砖去铺满,有多少种铺法,一开始没发现这个规律,想了一下,应该是递归。 #include using namespace std;int main(){ int i,t,a[31],n; a[1]=1;a[2]=3; cin>>n; while(n--&&cin>>t)原创 2014-12-11 14:55:30 · 478 阅读 · 0 评论 -
hdu 1869
#include using namespace std;int M[101][101];int main(){ int i,j,m,n,a,b,k; int flag; while(cin>>n>>m){ //flag=1; for(i=0;i<n;i++) for(j=0;j<n;j++)原创 2014-12-11 17:34:09 · 539 阅读 · 0 评论 -
HDU5308-脑补-对拍
先贴上对拍的结果:感想:可以明显发现下标相差1的关系,所以对付这种需要大量脑补的水题,真的蛋疼,以前没用过对拍,只知道有这么回事,调程序什么的都是手算,人工模拟(经常大脑发热,严重缺氧不足),所以试过一次对拍之后,其实感觉对付YY这种水题,特别管用。。。题意:给一个n值,代表n个n,利用+,-,*,/四种运算构造出24点来,每个数只能用一次,且经过一次运算后的数也只能用原创 2015-07-26 15:27:53 · 784 阅读 · 0 评论 -
Codeforces#313
A题题意:给n个基础币值,问你是否能组成所有种类的币值,能则输出-1,不能则输出不能组成的最小币值。思路:理解了题意就明白了,1是关键解。#include #include using namespace std;int main(){ int n,i; while(cin>>n) { bool flag = false;原创 2015-07-27 20:27:39 · 588 阅读 · 0 评论 -
HDU5319
题意:给一个矩形染色,顺笔表示红色,逆笔表示蓝色(既一捺和一丿),交叉表示绿色,然后给你一个图,问你用多少笔能画出这个图来。思路:对这个图直接模拟即可,如果点i,j坐标为红色,那么判断上一个路径点是否是红色,如果是则不加,所以最后求出的flag即是解,一开是以为是n*n的矩形,(/ □ \),都怪坑爹的实例。。#include #include #include using原创 2015-07-29 16:27:08 · 575 阅读 · 0 评论 -
ZOJ2099
题意:给多个点,连成折线,求一个矩形可以包含这条折线。输入:多组测试数据多个点的坐标每组测试数据以0,0结束以0,0结束程序输出:矩形左下角和右上角的坐标思路:水题,注意输入那里有点坑,每读入一组数据和之前的比较即可。#include #include #include using namespace std;int ma原创 2015-07-19 16:30:05 · 404 阅读 · 0 评论 -
HDU5327
#include #include #include using namespace std;int ss(int m,int n){ int ans=0,flag,a[10]; for(int h=m; h<=n; h++) { int s = h; memset(a,0,sizeof(a)); flag=0;原创 2015-07-30 16:00:32 · 713 阅读 · 7 评论 -
HDU5339
题意:给你数a和数组b,然后用a模b中的数,求至少模多少个才能使a==0思路:直接模拟吧,首先排序,因为模最大的符合(比如2,3,6)然后遍历b,去模其他的所有数,直到为0,标记退出,否则继续遍历b,循环操作。#include#include#include#include#define INF 999999999using namespace std;bool c原创 2015-08-02 13:35:58 · 755 阅读 · 5 评论 -
Codeforces-Div312
题意:给你n个数,进行*2,/2操作,求解最小操作次数能使所有数相同。思路:因为数值在100000以内,直接枚举过去,对读入的每一个数,模拟操作,用数组s来存放累计操作步数,数组flag用来标记确定*和/分开操作,最后模拟完,只要判断出s数组里面最小的操作步数即可#include #include #define MAX 99999999#define N 100原创 2015-08-02 19:49:24 · 397 阅读 · 0 评论 -
2015 Multi-University Training Contest 5
#include //1002#include#includeusing namespace std;const int maxn=500000+10;typedef long long ll;int a[maxn];int main(){ int n,z,l; ll m; int t; scanf("%d",&t); while(t--)原创 2015-08-04 14:25:58 · 545 阅读 · 0 评论 -
OJ常见问题及必须认识的对拍处理水题
HDUOJ:常见问题及解答Q: Online Judge(以下简称OJ)支持哪些语言?A: 目前为止,HDOJ支持C、C++、Pascal和Java四种语言。Q: 有什么条件判断我的程序是在OJ上运行吗?A: 您可以使用ONLINE_JUDGE这个条件定义。下面是使用举例: C/C++#ifdef ONLINE_JUDGE原创 2015-07-25 13:19:41 · 3120 阅读 · 0 评论 -
BestCoder 1st Anniversary
Souvenir Accepts: 1078 Submissions: 2366 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Problem DescriptionToday is the 1st annive原创 2015-07-25 20:06:51 · 681 阅读 · 0 评论 -
hdu 2037
#include #include using namespace std;struct p{ int endd,start;};p p1[1000];bool cmp(p p1,p p2){ return p1.endd<p2.endd;}int main(){ int i,m,k,t; while(cin>>t原创 2014-12-11 17:50:01 · 437 阅读 · 0 评论 -
hdu 2544
#include #include #define INF 9999999//#define INF 0x3f3f3f3using namespace std;int vis[200],dis[200],Map[200][200];int dijkstra(int n,int x){ int i,j,p,Min; for(i=1;i<=n;i++)原创 2014-12-11 17:36:06 · 417 阅读 · 0 评论 -
nyoj 76
#include using namespace std;int main(){ int i,t,n; int a[101]; cin>>t; while(t--) { cin>>n; if(n==1) cout<<"0"<<endl; else{ a[2]=1;原创 2014-12-11 17:44:42 · 477 阅读 · 0 评论 -
hdu 2191
#include #include using namespace std;struct race{ double p,h,c,flag;};race r[101];bool cmp(race a,race b){ //if() return a.flag<b.flag;}int main(){ int i,t,m原创 2014-12-11 17:51:50 · 548 阅读 · 0 评论 -
一道电梯的问题
#include #include using namespace std;int main(){ int i,c,n,a[101]; cin>>c; while(c--) { cin>>n; int k=0,flag=0; for(i=0;i<n;i++) ci原创 2014-12-12 17:55:45 · 469 阅读 · 0 评论 -
hdu 2104
#include using namespace std;int gcd(int a,int b){ return (b?gcd(b,a%b):a);}int main(){ int m,n; while(cin>>m>>n&&m+n!=-2) { if(gcd(m,n)==1) cout<<"YES\n";原创 2014-12-12 18:05:54 · 581 阅读 · 0 评论 -
hdu 2186
#include using namespace std;int main(){ int a,b,c,k1,k2,k3,m,n; cin>>m; while(m--){ k1=1;k2=1;k3=1; cin>>n; a=n/2;b=(n-a)*2/3;c=n-a-b; while(a/=10) k1原创 2014-12-12 18:01:34 · 432 阅读 · 0 评论