随笔分类 -  南阳理工学院OJ NYOJ

1 2 下一页

NYOJ546 Divideing Jewels
摘要:这道题自己想了两种方法:一种是搜索,代码很容易想到及理解 1 #include<stdio.h> 2 int a[15]; 3 bool dfs(int n,int money){ 4 if(n==0||money==0){ //money==0的时候就可以跳出了,可以不必等n非要为0时跳出 5 if(money==0) 6 return true; 7 }else{ 8 for(int i=a[n];i>=0;i--) 9 if(money>=n*i&&dfs(n-1,money-n*i)) ... 阅读全文

posted @ 2013-05-04 08:25 小花熊 阅读(458) 评论(0) 推荐(0) 编辑

NYOJ541 最强DE 战斗力
摘要:1 #include<stdio.h> 2 #include<string.h> 3 int s[205]; 4 int multiply(int x){ 5 int i,t; 6 for(t=i=0;i<200;i++,t/=10){ 7 t=s[i]*x+t; 8 s[i]=t%10; 9 }10 }11 int main()12 {13 int N,i,n,a;14 scanf("%d",&N);15 while(N--){16 memset(s,0,sizeof(s));17 ... 阅读全文

posted @ 2013-05-02 11:00 小花熊 阅读(378) 评论(0) 推荐(0) 编辑

NYOJ540 奇怪的排序
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int cmp(const void *x,const void *y){ 5 int i,j,c[10]={}; 6 int a=*(int *)x; 7 int b=*(int *)y; 8 9 for(i=0;a;i++){10 c[i]=a%10;11 a/=10; 12 }13 for(a=0,j=0;j<i;j++){14 a=c[j]+a*10... 阅读全文

posted @ 2013-05-02 08:08 小花熊 阅读(217) 评论(0) 推荐(0) 编辑

NYOJ250 ROOM ASSIGNATION || POJ3667 Hotel
摘要:1 /* 2 Name: 3 Copyright: 4 Author: 5 Date: 28/04/13 21:55 6 Description: 7 刚开始做这道题的时候,第一感觉用线段树应该很容易实现,结果发现我没做过此类的线段树题目 8 然后上网看了别人的代码,才了有点思路,现总结如下: 9 这道题题意就是旅馆订房问题,由于牵扯到某一段区间的查找与运算,所以选择了线段树求解, 10 用free表示此段区间房间是否可用,lmax代表这段区间从左边起最长空闲房间数,rmax表示这段... 阅读全文

posted @ 2013-04-29 07:06 小花熊 阅读(460) 评论(0) 推荐(0) 编辑

NYOJ311 完全背包
摘要:初始化的细节问题我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1..V]均设为-∞,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..V]全部设为0。为什么呢?可以这样理解:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0的背包可能被 阅读全文

posted @ 2013-04-27 10:29 小花熊 阅读(585) 评论(2) 推荐(0) 编辑

NYOJ289 苹果
摘要:原先用的滚动数组,现在用基本的动态规划,结果调试了很多次,发现了原因,贴上改正后的代码: 1 #include <stdio.h> 2 #include <string.h> 3 int v[1005],c[1005]; 4 int f[1005][1005]; 5 int max(int a,int b){ 6 if(a>b) return a; 7 return b; 8 } 9 int main()10 {11 int i,j,n,C;12 while(scanf("%d%d",&n,&C),n||C){13 memset 阅读全文

posted @ 2013-04-26 20:26 小花熊 阅读(218) 评论(0) 推荐(0) 编辑

NYOJ349 Sorting It All Out
摘要:1 #include<stdio.h> 2 #include<string.h> 3 bool map[30][30]; 4 int in[30],sort[30]; 5 int n,m,t; 6 bool f1,f2; 7 void solve(){ 8 int i,j,k,loc; 9 int temp[30];10 bool f=0;11 for(i=0;i<n;i++)12 temp[i]=in[i];13 for(t=i=0;i<n;i++){14 for(k=j=0;j<n;j++)15 ... 阅读全文

posted @ 2013-04-25 22:27 小花熊 阅读(221) 评论(0) 推荐(0) 编辑

NYOJ7 街区最短路径问题
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<vector> 4 using namespace std; 5 int locx[25],locy[25]; 6 int main() 7 { 8 int N,i,j,n,ans; 9 scanf("%d",&N);10 while(N--){11 scanf("%d",&n);12 for(i=0;i<n;i++)13 scanf("%d%d",&locx[i],& 阅读全文

posted @ 2013-04-25 08:42 小花熊 阅读(234) 评论(0) 推荐(0) 编辑

NYOJ171 聪明的kk (动态规划复习)
摘要:1 #include<stdio.h> 2 inline int max(int a,int b){ 3 if(a>b) return a; 4 return b; 5 } 6 int main() 7 { 8 int n,m,i,j,c; 9 int f[21][21]={0};10 scanf("%d%d",&n,&m);11 for(i=1;i<=n;i++)12 for(j=1;j<=m;j++){13 scanf("%d",&c);14 f[i][j]=max(f[i-1... 阅读全文

posted @ 2013-04-18 22:01 小花熊 阅读(252) 评论(0) 推荐(0) 编辑

NYOJ 18 The Triangle (动态规划复习)
摘要:1 #include<stdio.h> 2 int f[105][105],c[105][105]; 3 inline int max(int a,int b){ 4 if(a>b) return a; 5 return b; 6 } 7 int main() 8 { 9 int i,j,n;10 scanf("%d",&n);11 for(i=1;i<=n;i++)12 for(j=1;j<=i;j++)13 scanf("%d",&c[i][j]);14 for(i=n;i>0;i--)15 ... 阅读全文

posted @ 2013-04-18 22:00 小花熊 阅读(258) 评论(0) 推荐(0) 编辑

NYOJ 576 集齐卡片赢大奖(一)
摘要:1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 double ans; 6 int n; 7 while(~scanf("%d",&n)){ 8 if(n<10000){ 9 ans=0.0;10 for(int i=1;i<=n;i++)11 ans+=1.0*n/i;12 printf("%lld\n",(long long)(ans+0.5));13 }else... 阅读全文

posted @ 2013-03-21 20:49 小花熊 阅读(253) 评论(0) 推荐(0) 编辑

NYOJ 528 找球号(三)
摘要:1 #include<stdio.h> 2 int main() 3 { 4 int i,res,n; 5 while(~scanf("%d",&n)){ 6 res=0; 7 while(n--){ 8 scanf("%d",&i); 9 res^=i;10 }11 printf("%d\n",res);12 }13 return 0;14 } 我们先了解一下位异或的运算法则吧:1、a^b = b^a。2、(a^b)^c = a^(b^c)。3、a... 阅读全文

posted @ 2013-03-21 16:43 小花熊 阅读(241) 评论(0) 推荐(0) 编辑

NYOJ 138 找球号(二)
摘要:1 #include<stdio.h> 2 #include<memory.h> 3 #define N 1000010 4 #define MOD 110023 5 int ind,key[N],next[N],order[N];//key[i]保存第i个小球的编号, 6 //next[]保存当出现冲突时同一余数对应的多个编号的值 7 //order[i]保存余数为i时对应的球的序号,进而找到其编号 8 void add(int n) 9 {10 int remainder;11 ... 阅读全文

posted @ 2013-03-21 15:58 小花熊 阅读(214) 评论(0) 推荐(0) 编辑

NYOJ 228 士兵杀敌(五)
摘要:1 #include<stdio.h> 2 int m[1000010]; 3 int main() 4 { 5 int i,n,c,q,from,to,inc; 6 scanf("%d%d%d",&n,&c,&q); 7 for(i=0;i<c;i++){ 8 scanf("%d%d%d",&from,&to,&inc); 9 m[from]+=inc; //从from-n都加上inc 10 m[to+1]-=inc; //从to+1-n都减去inc 11 }12 for(i=0;i&l 阅读全文

posted @ 2013-03-21 09:06 小花熊 阅读(182) 评论(0) 推荐(0) 编辑

NYOJ 123 士兵杀敌(四)
摘要:1 #include<stdio.h> 2 int m,n,tree[1000010]; 3 void update(int index,int inc)//注意插线问点与插点问线的区别 4 { 5 while(index>0){ 6 tree[index]+=inc; 7 index-=index&(-index); 8 } 9 }10 int sum(int index)11 {12 int sum=0;13 while(index<=n){14 sum+=tree[index];15 in... 阅读全文

posted @ 2013-03-20 22:33 小花熊 阅读(199) 评论(0) 推荐(0) 编辑

NYOJ 42 一笔画问题
摘要:1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int father[1005]; 5 int degree[1005]; 6 int find(int x) 7 { 8 if(x!=father[x]) 9 father[x]=find(father[x]);10 return father[x];11 }12 void merge(int x,int y)13 {14 x=find(x);15 y=find(y);16 if(x!=y)17 ... 阅读全文

posted @ 2013-03-19 14:59 小花熊 阅读(920) 评论(0) 推荐(0) 编辑

NYOJ3 3 多边形重心问题
摘要:#include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>struct Point{ double x; double y;}point[10010];int i,n,m;int main(){ scanf("%d",&n); while(n--){ scanf("%d",&m); double tmp,area=0,x=0,y=0; for(i=0;i<m;i++) scanf("%lf%lf& 阅读全文

posted @ 2013-03-19 11:11 小花熊 阅读(199) 评论(0) 推荐(0) 编辑

NYOJ117 求逆序数
摘要:1 #include<stdio.h> 2 #include<string.h> 3 4 int a[1000004],tmp1[500002],tmp2[500002]; 5 long long cnt; 6 void merge(int start,int mid,int end){ 7 int i,j,k; 8 for(k=0,i=start; i<=mid; i++) 9 tmp1[k++]=a[i];10 tmp1[k]=0x7fffffff;11 for(k=0,i=mid+1; i<=end; i++)12 tm... 阅读全文

posted @ 2013-01-02 23:35 小花熊 阅读(260) 评论(0) 推荐(0) 编辑

NYOJ61 传纸条(一)
摘要:本题是一道双DP问题,我第一次看到这题不知怎么办,在网上参考了别人的代码!大概理解了这类题的做法!主要是简化时间即减小维数! 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 int v[52][52],f[102][52][52]; 6 int main(){ 7 int i,j,k,t,c,T,m,n; 8 scanf("%d",&T); 9 while(T--){10 scanf("%d%d&q 阅读全文

posted @ 2013-01-02 17:28 小花熊 阅读(392) 评论(0) 推荐(0) 编辑

nyoj20 吝啬的国度
摘要:1 #include<queue> 2 #include<vector> 3 #include<cstdio> 4 #include<cstring> 5 #include<iostream> 6 using namespace std; 7 queue<int> q; 8 int f[100010]; 9 vector<int> m[100010];//不能用二维数组,否则一直超内存,用vector定义二维数组虽然不超内存,但超时,因为它在定义是很耗时间 10 int main()11 {12 int i,a 阅读全文

posted @ 2012-08-20 14:41 小花熊 阅读(642) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示