gitcloud
-
输入方法:
例如:
input(从键盘):
1 2 3 7 4 5 8 0 6
output(向屏幕):
Step:1
1 2 3
4 5 6
7 8 0
Step:2
1 2 3
4 5 0
7 8 6
Step:3
1 2 3
4 0 5
7 8 6
Step:4
1 2 3
0 4 5
7 8 6
Step:5
1 2 3
7 4 5
0 8 6
Step:6
1 2 3
7 4 5
8 0 6
我的程序:
#include <stdio.h>
#include <math.h>
#include <CONIO.h>
struct bsm
{
int s[9];
int prep,pos;
} ar1[1000],ar2[1000];
int h1,r1,h2,r2,step;
struct bsm p;
int pd(int k)
{
int i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for (i=0;i<=r1;i++)
{
b2=0;
for (j=0;j<9;j++)
if (!(ar1[i].s[j]==p.s[j])) b2=1;
b1=b1*b2;
}
return(b1);
}
int pd0(int k)
{
int i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for (i=0;i<=r2;i++)
{
b2=0;
for (j=0;j<9;j++)
if (!(ar2[i].s[j]==p.s[j])) b2=1;
b1=b1*b2;
}
return(b1);
}
int pd1()
{
int i,j,b1,b2;
b1=0;
for (i=h2;i<=r2;i++)
{
b2=0;
for (j=0;j<9;j++)
if (!(ar2[i].s[j]==p.s[j])) b2=1;
if (0==b2)
{
r2=i;
b1=1;
}
}
return(b1);
}
int pd2()
{
int i,j,b1,b2;
b1=0;
for (i=h1;i<=r1;i++)
{
b2=0;
for (j=0;j<9;j++)
if (!(ar1[i].s[j]==p.s[j])) b2=1;
if (0==b2)
{
r1=i;
b1=1;
}
}
return(b1);
}
void out1(struct bsm m)
{
int i,j;
step++;
printf("Step:%d",step);
for (i=0;i<9;i++)
{
if (0==i%3) printf(" ");
printf("%d ",m.s[i]);
}
while (!kbhit());
i=getch();
printf(" ");
}
void out()
{
int i,j,k;
int arr[1000];
j=-1;
while (r1>0)
{
j=j+1;
arr[j]=r1;
r1=ar1[r1].prep;
}
j=j+1;
arr[j]=r1;
for (i=j;i>-1;i--)
{
out1(ar1[arr[i]]);
}
while (r2>0)
{
out1(ar2[ar2[r2].prep]);
r2=ar2[r2].prep;
}
}
void main()
{
int i,j;
step=0;
for (i=0;i<9;i++)
{
ar1[0].s[i]=(i+1)%9;
scanf("%d",&ar2[0].s[i]);
if (0==ar2[0].s[i]) ar2[0].pos=i;
}
ar1[0].pos=8;
ar1[0].prep=-1;
ar2[0].prep=-1;
h1=0;r1=0;h2=0;r2=0;
while(((h1<=r1)&&(r1<999))||((h2<=r2)&&(r2<999)))
{
if ((h1<=r1)&&(r1<999))
{
p=ar1[h1];
if (p.pos>2)
{
if (1==pd(-3))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if (1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if (p.pos%3>0)
{
if (1==pd(-1))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if (1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if (p.pos<6)
{
if (1==pd(3))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if (1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if (p.pos%3<2)
{
if (1==pd(1))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if (1==pd1())
{
out();return;
}
}
}
h1++;
}
if ((h2<=r2)&&(r2<999))
{
p=ar2[h2];
if (p.pos>2)
{
if (1==pd0(-3))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if (1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if (p.pos%3>0)
{
if (1==pd0(-1))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if (1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if (p.pos<6)
{
if (1==pd0(3))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if (1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if (p.pos%3<2)
{
if (1==pd0(1))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if (1==pd2())
{
out();return;
}
}
}
h2++;
}
}
if (step==0) printf("I cannot find the answer!");
}
或是:1:
8 3 4
2 6 5
1 7 0
2:
2 8 3
1 6 4
7 0 5
3:
2 8 0
1 6 3
7 5 4
4:
1 3 4
8 0 2
7 6 5
5:
2 1 6
4 0 8
7 5 3
我知道什么样的情况有解,什么情况没解.
函数f(s)表示s前比s小的数字的数目.
例如:
|1 3 4|
|2 8 6|
|5 7 |
表示成:
|1 3 4|2 8 6|5 7 X| 则f(7)=6, f(5)=4,f(6)=4,f(8)=4,f(2)=1,
f(4)=2,f(3)=1,f(1)=0
当f(a8)+f(a7)+……+f(a1)为偶数时才能重排成
所以嘛,上面那个有解的.
下面我就来证明一下.
设任意一种情况:
|a1 a2 a3|
|a4 a5 a6|
|a7 a8 X | (X表示空格)
将之放在一行上: |a1 a2 a3|a4 a5 a6|a7 a8 X |
数字的上下移动可以相对于是空格的上下移动.
所以我们只要讨论X的移动了:
假设函数f(s)表示s前比s小的数字的数目.
例如:|1 3 4|2 8 6|5 7 X| 则f(7)=6, f(5)=4, f(8)=4,……
对于X在同一行中的移动,f(a8)+f(a7)+……+f(a1)大小不变(*1)
如:|a1 a2 a3|a4 a5 a6|a7 a8 X |=>|a1 a2 a3|a4 a5 a6|a7 X a8|
对于X在列中移动是,我们不妨设X与a6对换(即a6下移一格)
则数列变为|a1 a2 a3|a4 a5 X|a7 a8 a6|,可能引起变化的f(s)只有f(a6),f(a7),f(a8)
讨论:有4种情况1) a6<a7, a6<a8
f(a8) 减小1
f(a7) 减小1
f(a6) 不变
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
2) a6<a7, a6>a8
f(a8) 不变
f(a7) 减小1
f(a6) 增大1
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
3) a6>a7, a6>a8
f(a8) 不变
f(a7) 不变
f(a6) 增大2
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
3) a6>a7, a6<a8
f(a8) 减小1
f(a7) 不变
f(a6) 增大1
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
这样,再将a3下移一格则|a1 a2 a3|a4 a5 X|a7 a8 a6|=>|a1 a2 X|a4 a5 a3|a7 a8 a6|
则同样,对可能变化的f(a3),f(a4),f(a5)讨论,情况一上面完全一样。
其它情况都如此:
如:|a1 X a3|a4 a5 a6|a7 a8 a2|=>|a1 a5 a3|a4 X a6|a7 a8 a2|
就f(a3),f(a4),f(a5)变化.
结论:因为对于|1 2 3|4 5 6| 7 8 X|, f(8)+f(7)+……+f(1)=28, 是偶数,
所以当f(a8)+f(a7)+……+f(a1)为偶数时才能重排成|1 2 3|4 5 6| 7 8 X|成功.
COPY来的答案,看能不能帮到你吧。。。
hi投
-
输入方法:
例如:
input(从键盘):
1
2
3
7
4
5
8
0
6
output(向屏幕):
Step:1
1
2
3
4
5
6
7
8
0
Step:2
1
2
3
4
5
0
7
8
6
Step:3
1
2
3
4
0
5
7
8
6
Step:4
1
2
3
0
4
5
7
8
6
Step:5
1
2
3
7
4
5
0
8
6
Step:6
1
2
3
7
4
5
8
0
6
我的程序:
#include
<stdio.h>
#include
<math.h>
#include
<CONIO.h>
struct
bsm
{
int
s[9];
int
prep,pos;
}
ar1[1000],ar2[1000];
int
h1,r1,h2,r2,step;
struct
bsm
p;
int
pd(int
k)
{
int
i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for
(i=0;i<=r1;i++)
{
b2=0;
for
(j=0;j<9;j++)
if
(!(ar1[i].s[j]==p.s[j]))
b2=1;
b1=b1*b2;
}
return(b1);
}
int
pd0(int
k)
{
int
i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for
(i=0;i<=r2;i++)
{
b2=0;
for
(j=0;j<9;j++)
if
(!(ar2[i].s[j]==p.s[j]))
b2=1;
b1=b1*b2;
}
return(b1);
}
int
pd1()
{
int
i,j,b1,b2;
b1=0;
for
(i=h2;i<=r2;i++)
{
b2=0;
for
(j=0;j<9;j++)
if
(!(ar2[i].s[j]==p.s[j]))
b2=1;
if
(0==b2)
{
r2=i;
b1=1;
}
}
return(b1);
}
int
pd2()
{
int
i,j,b1,b2;
b1=0;
for
(i=h1;i<=r1;i++)
{
b2=0;
for
(j=0;j<9;j++)
if
(!(ar1[i].s[j]==p.s[j]))
b2=1;
if
(0==b2)
{
r1=i;
b1=1;
}
}
return(b1);
}
void
out1(struct
bsm
m)
{
int
i,j;
step++;
printf("Step:%d",step);
for
(i=0;i<9;i++)
{
if
(0==i%3)
printf(" ");
printf("%d
",m.s[i]);
}
while
(!kbhit());
i=getch();
printf(" ");
}
void
out()
{
int
i,j,k;
int
arr[1000];
j=-1;
while
(r1>0)
{
j=j+1;
arr[j]=r1;
r1=ar1[r1].prep;
}
j=j+1;
arr[j]=r1;
for
(i=j;i>-1;i--)
{
out1(ar1[arr[i]]);
}
while
(r2>0)
{
out1(ar2[ar2[r2].prep]);
r2=ar2[r2].prep;
}
}
void
main()
{
int
i,j;
step=0;
for
(i=0;i<9;i++)
{
ar1[0].s[i]=(i+1)%9;
scanf("%d",&ar2[0].s[i]);
if
(0==ar2[0].s[i])
ar2[0].pos=i;
}
ar1[0].pos=8;
ar1[0].prep=-1;
ar2[0].prep=-1;
h1=0;r1=0;h2=0;r2=0;
while(((h1<=r1)&&(r1<999))||((h2<=r2)&&(r2<999)))
{
if
((h1<=r1)&&(r1<999))
{
p=ar1[h1];
if
(p.pos>2)
{
if
(1==pd(-3))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if
(1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if
(p.pos%3>0)
{
if
(1==pd(-1))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if
(1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if
(p.pos<6)
{
if
(1==pd(3))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if
(1==pd1())
{
out();return;
}
}
}
p=ar1[h1];
if
(p.pos%3<2)
{
if
(1==pd(1))
{
p.prep=h1;
r1++;
ar1[r1]=p;
if
(1==pd1())
{
out();return;
}
}
}
h1++;
}
if
((h2<=r2)&&(r2<999))
{
p=ar2[h2];
if
(p.pos>2)
{
if
(1==pd0(-3))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if
(1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if
(p.pos%3>0)
{
if
(1==pd0(-1))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if
(1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if
(p.pos<6)
{
if
(1==pd0(3))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if
(1==pd2())
{
out();return;
}
}
}
p=ar2[h2];
if
(p.pos%3<2)
{
if
(1==pd0(1))
{
p.prep=h2;
r2++;
ar2[r2]=p;
if
(1==pd2())
{
out();return;
}
}
}
h2++;
}
}
if
(step==0)
printf("I
cannot
find
the
answer!");
}
或是:1:
8
3
4
2
6
5
1
7
0
2:
2
8
3
1
6
4
7
0
5
3:
2
8
0
1
6
3
7
5
4
4:
1
3
4
8
0
2
7
6
5
5:
2
1
6
4
0
8
7
5
3
我知道什么样的情况有解,什么情况没解.
函数f(s)表示s前比s小的数字的数目.
例如:
|1
3
4|
|2
8
6|
|5
7
|
表示成:
|1
3
4|2
8
6|5
7
X|
则f(7)=6,
f(5)=4,f(6)=4,f(8)=4,f(2)=1,
f(4)=2,f(3)=1,f(1)=0
当f(a8)+f(a7)+……+f(a1)为偶数时才能重排成
所以嘛,上面那个有解的.
下面我就来证明一下.
设任意一种情况:
|a1
a2
a3|
|a4
a5
a6|
|a7
a8
X
|
(X表示空格)
将之放在一行上:
|a1
a2
a3|a4
a5
a6|a7
a8
X
|
数字的上下移动可以相对于是空格的上下移动.
所以我们只要讨论X的移动了:
假设函数f(s)表示s前比s小的数字的数目.
例如:|1
3
4|2
8
6|5
7
X|
则f(7)=6,
f(5)=4,
f(8)=4,……
对于X在同一行中的移动,f(a8)+f(a7)+……+f(a1)大小不变(*1)
如:|a1
a2
a3|a4
a5
a6|a7
a8
X
|=>|a1
a2
a3|a4
a5
a6|a7
X
a8|
对于X在列中移动是,我们不妨设X与a6对换(即a6下移一格)
则数列变为|a1
a2
a3|a4
a5
X|a7
a8
a6|,可能引起变化的f(s)只有f(a6),f(a7),f(a8)
讨论:有4种情况1)
a6<a7,
a6<a8
f(a8)
减小1
f(a7)
减小1
f(a6)
不变
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
2)
a6<a7,
a6>a8
f(a8)
不变
f(a7)
减小1
f(a6)
增大1
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
3)
a6>a7,
a6>a8
f(a8)
不变
f(a7)
不变
f(a6)
增大2
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
3)
a6>a7,
a6<a8
f(a8)
减小1
f(a7)
不变
f(a6)
增大1
所以f(a8)+f(a7)+……+f(a1)奇偶性不变.
这样,再将a3下移一格则|a1
a2
a3|a4
a5
X|a7
a8
a6|=>|a1
a2
X|a4
a5
a3|a7
a8
a6|
则同样,对可能变化的f(a3),f(a4),f(a5)讨论,情况一上面完全一样。
其它情况都如此:
如:|a1
X
a3|a4
a5
a6|a7
a8
a2|=>|a1
a5
a3|a4
X
a6|a7
a8
a2|
就f(a3),f(a4),f(a5)变化.
结论:因为对于|1
2
3|4
5
6|
7
8
X|,
f(8)+f(7)+……+f(1)=28,
是偶数,
所以当f(a8)+f(a7)+……+f(a1)为偶数时才能重排成|1
2
3|4
5
6|
7
8
X|成功.
COPY来的答案,看能不能帮到你吧。。。
Ntou123
-
在这里下载个软件吧,很好用的。
启发式搜索解决八数码难题 1.0
http://www.chinaai.org/Soft_Show.asp?SoftID=47
FinCloud
-
比如说这个,就有您要的一切题和题解:
http://www.rqnoj.cn/
能解决楼主的问题。
RQNOJ难度
RQNOJ的题比POJ容易多了,POJ在国内基本上是强的OJ了RQNOJ的题也不是最弱的,比起一些小OJ,NUAA这一类的RQNOJ还算好。但主要的区别不是难度上,而是它按点测试且不能重复提交,适合OIer2023-08-05 20:12:562
rqnoj上的第1题怎么做?
计数排序。2023-08-05 20:13:044
被rqnoj封号怎么办 要改IP地址吗
假如你是2011年1月1号被封一年的。直接把自己的时间更改成解封的那天。就是2012年1月1日。点过之后再点(日期和时间 属性)中的 Internet时间。将服务器时间中的time.windows.com更改成time.nist.gov然后再点立即更新。然后再应用再确定。过一段时间(要长一点,24小时吧。)把自己电脑时间更新成现在的时间。2023-08-05 20:13:111
RQNOJ统计数字谁会?
先用快排将所有数字从小到大排一下, 再从第一个数字开始统计~~直至遇到不同的再统计下一个不同的数字。核心如下: long sum=0; for(long i=0;i<n;i++) { sum++; if(number[i]!=number[i+1]) { printf("%ld %ld ",number[i],sum); sum=0; } }2023-08-05 20:13:181
RQNOJ 125:文本的剪切与粘贴 编程 求助
你这里面没有使用到需求中提到的文本文件,而是自己写了一个测试数组来代替的2023-08-05 20:13:252
RQNOJ 341 星门跳跃 不知那里错了?
错2023-08-05 20:13:322
RQNOJ忘记密码了申请后怎么老是没发邮件过来呢
楼主好: 您说的是国内的知名网站,不知道您用的哪个邮箱注册的,如果是QQ邮箱的话应该没问题,QQ邮箱作为国内使用量最大的电子邮箱,和很多游戏啊网站啊都可以直接关联。 您去自己的QQ邮箱看一下,垃圾箱里也找一找,看看是不是有激活邮件被系统自动屏蔽了。QQ邮箱的安全性很高,有时候邮件带有敏感字眼或者疑似不法链接,都会被屏蔽哦。如果还是不能解决您的问题,欢迎继续追问我望采纳2023-08-05 20:13:411
RQNOJ 4 数列 求解,求具体思路、解题原理???
由于第N个数字是互不相等的k的方幂之和,所以每个方幂在这个数字里面最多出现一次,每个方幂是否出现可以用一个bit位来表示,幂次代表bit位的位置,于是k^3表示成1000,k^0表示成0001,所有的这类数字按从大到小的顺序排出来就是0001,0010,0011,0100……第N项其实就是N转换成二进制之后,再将相应的位转换成相应的k的方幂!2023-08-05 20:13:481
大家知道RQNOJ吗?我在上面写了一个程序,样例给出的输入输出如左图,我的输入输出是右图,完全一样
有钱人,用苹果2023-08-05 20:13:552
RQNOJ关于错误的解释。。。
第一行:错误结果第二行:正解2023-08-05 20:14:021
oj题库怎么查看答案
登录进去,查找搜索1、打开putty后,输入 烟台大学OJ系统 服务器的IP地址: 202.194.119.110,输入端口号:6666,选择SSH连接方式,2、点击open即可进入登录页面 3、在登录页面输入用户名,回车确认,然后输入密码,再回车确认即可登录成功 4、登录成功后,即可通过 putty 将代码提交到OJ平台。OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。国内著名的题库有北京大学题库、浙江大学题库等。国外的题库包括乌拉尔大学、瓦拉杜利德大学题库等。2023-08-05 20:14:221
oj网络聊天是什么意思
oj网络聊天是用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。oj网络聊天如果铁路上一切正常,就说声All correct,即"完全正常"。由于All音接近"O",correct音近"K",为了方便,工人们就省读"OK"来表示同样的意思。现在不但表示"好","行","不错"这些意思,还包含有对别人的意见表示赞同,承认的意义。在签名中也用于表示同意,认可。oj网络聊天网聊账号或变成你的手机号:oj网络聊天2013年的世界电信日,工信部正式公布《移动通信转售业务试点方案》,拟申请经营移动通信转售业务的企业,可从即日起至2014年7月1日,按照相关法律法规要求,申报经营移动通信转售业务。根据工信部的相关文件,获得试点批文的转售企业。oj网络聊天可以从基础电信业务经营者购买移动通信服务,重新包装服务内容,以自有品牌开展包括移动话音业务、短信/彩信业务、移动数据业务等在内的移动通信业务。而且,语音、短信业务转包给民资企业后,不同厂家拿到牌照会玩出不同的花样。2023-08-05 20:14:301
提示compile error,怎么办。。(C++)
编译错误,把max的变量名换一下试试2023-08-05 20:14:432
手风琴现在学的人多吗?
手风琴现在学的人多。手风琴作为键盘乐器中的一种,产自于欧洲,而追根溯源其制作原理却是源自中国传统乐器 “ 笙 ” 的竹簧发音原理。据史料记载, 1777 年一位来华传教的阿莫依神父将中国的 “ 笙 ”带往欧洲,从而启发了欧洲人把竹簧发音的原理用到了风琴上,生产制作出外形各具风格特征、但原理基本相同的各式簧片乐器。扩展资料:透过上述几种手风琴结构类型的变化,大致可以看出手风琴发展过程中所经历的几个主要阶段。当今键钮式手风琴主要是在苏联以及北欧一些国家中流行,在其它国家和地区流行最广泛的还是键盘式手风琴。如今,手风琴在制造工艺、演奏技巧和手风琴专业音乐创作等方面都有极大的、变革性的发展。现代手风琴不仅可以担任伴奏、独奏,参加重奏、合奏、协奏,而且可以单独演奏古典各派音乐大师们的大型音乐作品的原作。随着手风琴这种乐器的不断完善和演奏技巧的迅速发展,手风琴专业音乐创作引起了众多作曲家们的重视。2023-08-05 20:14:538
计数的梦
你的程序我检查过一遍,逻辑没有问题;测试小型数据的时候也没有问题;我想问你测试的m和n各是多大?2023-08-05 20:15:423
关于NOI的问题
VJ的题没有可比性..2023-08-05 20:15:503
学C语言的NOIP问题
分几个部分基础知识数据结构数学题自己找书看2023-08-05 20:15:583
DEVC++莫名其妙编译错误
重新下一个吧http://s.kuaiche.com/s/download?fid=EFA8383FDF2D5C172ED313054FD6AEAD&tpl=1&r=1&sid=6190#2023-08-05 20:16:052
托物言志的名家散文
我的空中楼阁 李乐薇张抗抗的《地下森林断想》和《牡丹的拒绝》、林希的《石缝间的生命》、壶井荣的《蒲公英》、季羡林的《清塘荷韵》、刘成章的《找椽树》、布封的《天鹅》、鲁迅的散文诗《秋夜》从 http://zhidao.baidu.com/link?url=8k2SOCtLUcCb1TSzUfy6bm1b02vmVb4Jw0dvhAEmBdrWTYFsWVLxAEA0LHpjUmjuO8mD27rgYqaedkWrQnojy5QOeteRmQbbB54rTrSQINS 这里找来的2023-08-05 20:16:145
做不出OJ上的题,应该怎么办?
我个人觉得,如果你是缺乏训练的初学者,做不出oj的题目实属正常,没必要烦恼,总结各家oj的特点,针对性的进行练习就行。北京大学题库题量较多,OJ各项功能比较完善,还提供免费的OJ系统下载,完全可以利用平台提供的系统自行搭建OJ。缺点是题目数量很多,几千道题,正因为题量大,所以水题自然也就多了,但这绝对不表示PKU的题目质量低劣。PKU的难题其实不少不少,做不做水题自行决定,和OJ无关。专家给出的建议是,初学者或者仅想提高编程准确性的人士,按照AC率做,确保1Y率就行,如果是有一定水平的OIer,可以每页完成40~50题。如果是牛人尽量做题,如果想专门训练某个项目,可以去网上搜pku题目分类,pku里的dp题和数学题比较多。浙江大学题库作为国内起步最早的OJ之一,题量也接近2000,题目质量也不错,不过OJ系统的友好性不如pku,不过,功能并不逊色,可以作为pku的替代品。RQNOJ经过一年时间的发展逐渐成熟,题量也在不断增加,用户数量显著上升。最近RQNOJ新推出了一些功能,颇得用户称赞,特别是经常组织一些比赛,有兴趣的可以去报名参加,是对个人能力的极好训练和交流的机会。总结OJ题目只是个途径,不是目标,即使本人不去参赛,参加训练也是对个人能力的培养和训练,寻找适合自己个人水准的oj,由易到难,掌握好学习的进度就好。2023-08-05 20:16:501
单调队列是什么
至于 460 的单调队列,就我目前的看法,只能实现 O(NlgN) 的算法(嗯,之前写的所谓 O(N) 算法是有问题的,至少不太好实现)。我大致说一下,从前往后枚举以每个元素结尾的符合要求的二元组个数,并且不断维护之前的数组。显然,在之前数组的任意位置都不应出现逆序对(逆序对的后一个元素显然是没有前途的)。删去所有逆序对之后得到的就是一个单调非增的序列。于是对于以当前元素结尾的二元组,在之前的队列中从第一个比当前元素大的元素开始直到结尾的所有元素都符合要求,可以二分查找出这个位置,这一步 O(lgN)。之后我们将当前元素插入队列,由于原先队列已经有序,所以只要将队头比当前元素小的删除即可,平摊复杂度 O(1)。至于 O(N) 算法,后来想了一下,理论上来说插入队列时删去的元素个数(大多数情况下再加1)就是当前元素结尾的二元组个数。但是有一种情况,就是出现与当前元素相等的元素,这种元素不能删除,只能一个一个统计。所以每步操作复杂度就不是 O(1) 了。不过理论上可以再用一些东西标记以实现 O(1),我没细想了。2023-08-05 20:17:401
信息学做题网站
Vijos www.vijos.orgluogu www.luogu.orgopenjudge www.openjudge.cn2023-08-05 20:17:483
pascal大牛请进 “连续正整数”问题求解
完整程序以及简单的注释如下:{$apptype console}program exp;var n,i,j,k,s:integer;beginreadln(n);{获取这个数}for i:=1 to n do{从1到这个数寻找数列}begins:=i;{从i开始的数列之和}j:=i;while (s<n) do begin j:=j+1; s:=s+j; end;{如果i~j之和满足要求则输出}if s=n then begin for k:=i to j do write(k," "); writeln; end;end;end.程序在DELPHI下调试通过,在FREE PASCAL、TURBO PASCAL上应该没有问题,运行示例如下:E:ygb>dcc32 b.dprBorland Delphi Version 15.0Copyright (c) 1983,2002 Borland Software Corporationb.dpr(13)14 lines, 1.17 seconds, 11152 bytes code, 1809 bytes data.E:ygb>b.exe151 2 3 4 54 5 67 82023-08-05 20:17:551
关于如何学习编程的问题
先学C语言。然后学习C++,对C++熟悉后就可以学习Visual C++了,,VB比C++简单些你自己看着半就是。首先确定几个问题 1、您真的喜欢编程么?//以确定您可以学下去的决心 2、在编程领域您想做到什么程度?//以确定您的语言选择什么方向,如果只是玩玩儿,那么VB就可以了。^-^ 3、您的兴趣点在哪里?//入手的方向或者说是学习的方法。 上述这几个需要您回答的问题我们是爱莫能助的。 入门的方式; 确定上述几个问题后,找一个合适的语言和工具,找一本好书,按照上面的例子先把语法弄懂。尝试着写一个最简单的程序,然后不断的增加功能,不懂得就看书或者去google或请教别人。不要急着写什么宏大的程序?程序小不要紧关键是一定要规范,从一开始就要职业,别像某些教材还在用ijk来做变量名,这种东西不看也罢。好的习惯一定要在一开始就养成! 推荐两个方案吧。 方案一: 语言:Pascal 工具:Delphi 优点 (1)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。 (2)Delphi编译速度非常快。 (3)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。 方案二: 语言:C++ 工具:C++ Builder 优点 (1)语言灵活性好,效率高,可以接触到软件开发比较底层的东西。 (2)执行速度非常快。 (3)C++ Builder完全的可视化,极强的兼容性,支持OWL、VCL和MFC三大类库。2023-08-05 20:18:047
一个C语言编程问题 求助..........我实在查不出错误...............
我也不知道,先去学会了Debug再来编程吧,这样找捷径干什么事情都会失败的2023-08-05 20:18:192
pascal大牛请进 已知结点个数,如何求不同二叉树的个数
组合数学问题,(1/n+1)*C(n,2n)也可以用dp做,程序如下(测试通过):Programtreenodes;varf:array[0..20]ofint64;n,i,j,k:integer;beginreadln(n);f[0]:=1;f[1]:=1;fori:=2tondobeginj:=0;k:=i-1;whilek-j>0dobegininc(f[i],f[j]*f[k]*2);inc(j);dec(k);end;ifodd(i)theninc(f[i],f[j]*f[k]);end;writeln(f[n]);end.2023-08-05 20:18:261
信息学竞赛
最好边学边刷题,效果更好2023-08-05 20:18:484
FP+编程+AC、CE、WA:x状态
AC是指你程序正确CE是指程序编译错误WA:10表示你程序得了10分,满分100分WA:70 同上望采纳!!!!!2023-08-05 20:18:571
noip 刷题求推荐
我觉得往年的题值得好好做一做,细细捉摸一下,看看大牛们写的结题报告。别的题只是练练手感吧,各种模拟题也很多,但不一定能抓住NOIP出题的思路……推荐两个OJ吧,我原来用过的(不知道现在还有没有),tyvj和RQNOJ,有些月赛题和考前模拟题出的还不错。然后基本功要练好,搜索什么的不能有问题啊!比如我参加的前年的比赛,一试最后一题搜索不加任何剪枝就可以50+,写的好一点可以60……楼主加油。2023-08-05 20:19:051
oj平台可以看上一道题吗
可以。根据查询oj平台相关信息得知,该平台可以看上一道题。OJ是OnlineJudge系统的简称,用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。OnlineJudge系统(简称OJ)是一个在线的判题系统。2023-08-05 20:19:121
请问有专门出编程C++语言题目(中文,洛谷外的)网站吗?
搜索acm,是关于算法的题2023-08-05 20:19:202
C语言,求网友发可以刷C语言编程题的网址,不甚感激,OJ题!
著名的浙大ojhttp://acm.zju.edu.cn/mdj2014/2023-08-05 20:19:304
pascal 难题求解
上RQNOJ找题解2023-08-05 20:19:373
初学C++求几个适合新手的OJ刷题网站
UVa oj有刘汝佳书的题2023-08-05 20:19:474
rqnoj数列
program p4;var i,j,k,n:longint; a,b,ans:array[0..10000] of longint;begin readln(k,n); i:=0; while n<>0 do begin a[i]:=n mod 2; n:=n div 2; inc(i); end; n:=i-1; for i:=n downto 0 do b[n-i]:=a[i]; ans[1]:=a[n]*k+a[n-1]; for i:=2 to n do ans[i]:=ans[i-1]*k+a[n-i]; writeln(ans[n]);end.2023-08-05 20:20:051
rqnoj138号题
这样的话你那撤掉uses wincrt应该没错了2023-08-05 20:20:121
poj 2614 uva 10280 求救!!!!
poj 2614 uva 10280 求救!!!!2023-08-05 20:20:242
请介绍几个您知道的信息学竞赛的网址.
论坛:信息学之家 OIBH http://www.oibh.org/bbs/OI爱好者:http://bbs.oifans.cn/OI编程论坛:http://program.xuntan.com/OI人:http://oiers.cn/bbs网站:信息学之家 OIBH http://www.oibh.org/OI人:http://oiers.cn/中文信息学在线评测系统:Vijos:http://www.vijos.cn/RQNOJ:http://www.rqnoj.cn/2023-08-05 20:20:322
推荐一些好的网站
www.RQNOJ.COM2023-08-05 20:20:402
pascal问题
你给几个没有通过的数据!2023-08-05 20:20:474
钟方源的人物经历
2005年参与创立郭家颐的大陆官方网站“至爱家颐网”(已于2006年关闭)。2005年参与创立女歌手张含韵粉丝论坛“张含韵后援会”(该网站已于2006年合并至张含韵官方论坛)。2005年参与创立刘亦菲粉丝官方网站“亦菲仙居”(已于2008年关闭)。2006年,加入国内著名影视后期团队“博然影视”。2007年,以ID“YOURS”,在国内高效信息学在线评测系统VIJOS总排名第一。并担任国内信息学在线测评开放平台RQNOJ网站管理员。2008年,任信息学初学者之家OIBH论坛版主,专门为信息学初学者提供网络题库题目的解题报告。并于北京大学程序在线评测系统POJ总排名第67名。2009年6月,制作网络游戏《天之痕online》官方宣传片。 2010年3月,加入冰水混合物社团。(已退出)同年7月策划并制作个人原创系列广播剧《昙花结》 ,并发布于《青年文摘》电子版。2010年暑假,担任著名RPG游戏“仙剑奇侠传”官方论坛版主。(已辞职)推动早期国产游戏配音中国角色扮演单机游戏一直备受玩家青睐,然而由于制作经费上市周期等等条件的制约,中国单机角色扮演游戏很少有中文配音的版本上市,令很多游戏玩家心中留有遗憾。2008年初,钟方源加入仙剑配音组,主导并接手(该作品从第七集开始已停止制作)国内第一个完整的全剧情配音视频作品《仙剑奇侠传三全剧情配音视频》(全24集)的制作。除此之外,其后全面开展多部游戏作品的全剧情配音视频制作,包括《仙剑奇侠传四全剧情配音视频》、《仙剑奇侠传三外传问情篇全剧情配音视频》、《轩辕剑外传汉之云全剧情配音视频》等。在钟方源的主导、策划和宣传下,这些配音作品每一集都获得了姚壮宪、蔡明宏等游戏制作人的帮助和支持,同时也在多家媒体首页发布,点击率超过千万次。这些早期的尝试,一定程度上催生了其后国产游戏官方配音的诞生。参与商业配音制作2010年7月,国产游戏《古剑奇谭》于两岸三地发布,起初发布时并没有官方配音,钟方源开始主导制作《古剑奇谭全剧情游戏配音视频》。同年年底,该游戏发布官方配音版本。钟方源意识到国产游戏未来将会逐步加入官方配音,兴趣配音作品的受众将越来越少。于是其开始积极联系和参与商业配音作品制作,参与完成了《天之痕online》等多部游戏作品的商业制作。2023-08-05 20:20:541
哪有编程题目的网站?
码酷www.marcool.netwww.rqnoj.cn2023-08-05 20:21:074
自学电脑编程 除了《C Primer Plus》《C程序设计语言》《C和指针》《C专家编程》等书 数学以外还要学什么
其实学C语言书都差不多,主要还是靠实践。可以上http://poj.org/或者http://www.rqnoj.cn/这种网站去找题做一做。如果想要学的更深的话建议看一看数据结构和算法设计这方面的书。比如清华大学出版社严蔚敏的《数据结构(C语言版)》等等,祝你成功。2023-08-05 20:21:154
pascal的一道题
什么意思啊?加点解释,谢谢~2023-08-05 20:21:222
Free Pascal的学子们快来
tyvjvijosrqnojusaco2023-08-05 20:21:404
请推荐一个好的oj,适合备战noip普及组复赛的
浙江出版社的复赛2023-08-05 20:21:483
NOIP提高组或NOI求速成
多看书,上网,开发智力2023-08-05 20:21:552
好的中文OJ(NOIP难度)
衡阳八中JudgeOnline巴蜀中学JudgeOnline2023-08-05 20:22:024
求pascal高手做一道题
NOIP原题,纯模拟……2023-08-05 20:22:102
诸位兔子,有什么像ronoj这样的编程网站吗??急需!!
tyvjpojusaco评测机很烂2023-08-05 20:22:162