1820:【00NOIP提高组】进制转换

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1180 通过数: 498

【题目描述】
我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的形式。例如,123可表示为1102+2*101 +310^0这样的形式。

与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位 置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以R或-R为基数,则需要用到的数码为0,1,…R-1。例如,当R=7时,所需用到的数码是0,1,2, 3,4,5和6,这与其是R或-R无关。如果作为基数的数绝对值超过10,则为了表 示这些数码,通常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A 表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。 在负进制数中是用-R作为基数,例如-15(+进制)相当于110001(-2进制),

并且它可以被表示为2的幂级数的和数: 110001=1*(-2)5+1*(-2)4+0*(-2)3+0*(-2)2+0*(-2)1+1*(-2)0

问题求解:

设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负进制下的数:-R∈{-2,-3,-4,…-20}

【输入】
输入的每行有两个输入数据。

第一个是十进制数N(-32768<=N<=32767); 第二个是负进制数的基数-R。

【输出】
输出此负进制数,若此基数超过10,则参照16进制的方式处理。

【输入样例】
30000 -2
-20000 -2
28800 -16
-25000 -16
【输出样例】
1101101010111000
1111011000100000
19180
7FB8
题解:

#include<bits/stdc++.h>
using namespace std;
char num[10]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,‘G’,‘H’,‘I’,‘J’};
int n,a,ans[300],tot;
int main()
{
int i;
while(~scanf(“%d”,&n))
{
scanf(“%d”,&a);tot=0;
while(n)
{
ans[++tot]=n%a;
n/=a;
if(ans[tot]<0) ans[tot]-=a,n++;
}
for(i=tot;i>=1;i–)
{
if(ans[i]<10) printf(“%d”,ans[i]);
else printf(“%c”,num[ans[i]-10]);
}
putchar(‘\n’);
}
return 0;
}
1821:【00NOIP提高组】乘积最大

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 958 通过数: 779

【题目描述】
今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先 生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:

设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。

同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:

有一个数字串: 312,当N=3,K=1时会有以下两种分法:

1)3*12=36

2)31*2=62

这时,符合题目要求的结果是: 31*2=62

现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。

【输入】
共有两行:

第一行共有2个自然数N,K (6<=N<=40,1<=K<=6)

第二行是一个K度为N的数字串。

【输出】
所求得的最大乘积(一个自然数)。

【输入样例】
4 2
1231
【输出样例】
62
题解:

#include
#include
#include
using namespace std;
long long g[20][50];
long long G(int x,int len,long long num)
{
if(g[x][len]) return g[x][len];
if(x==0) return g[x][len]=num;
for(int i=x-1;i<len-1;i++)
{
long long a=num%(long long)pow(10,len-i-1);
a*=G(x-1,i+1,(num-a)/pow(10,len-i-1));
g[x][len]=max(g[x][len],a);
}
return g[x][len];
}
int main()
{
int n,L;
long long num;
scanf(“%d%d%lld”,&L,&n,&num);
printf(“%lld”,G(n,L,num));
return 0;
}
1822:【00NOIP提高组】单词接龙

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 789 通过数: 629

【题目描述】
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们己知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙" 中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。

【输入】
输入的第一行为一个单独的整数n(n<=20)表示单词数,以下n行每行有一个单词,输入的最后一行为一个单个字符,表来“龙”开头的字母。你可以假定以此字母开头的“龙"一定存在。

【输出】
只需输出以此字母开头的最长的“龙”的长度

【输入样例】
5
at
touch
cheat
choose
tact
a
【输出样例】
23
【提示】
样例说明:

"龙"为:atoucheatactactouchoose

题解:

#include<bits/stdc++.h>
using namespace std;
#define N 25
int n, totLen, mxLen;
string s[N];
int vis[N];
void dfs(string ls)
{
mxLen = max(totLen, mxLen);
for(int i = 1; i <= n; ++i)
{
if(vis[i] < 2)
{
int len;
for(len = 1; len < ls.length() && len < s[i].length(); ++len)
{
if(ls.substr(ls.length()-len, len) == s[i].substr(0, len))
break;
}
if(len < ls.length() && len < s[i].length())
{
vis[i]++;
totLen += s[i].length() - len;
dfs(s[i]);
totLen -= s[i].length() - len;
vis[i]–;
}
}
}
}
int main()
{
char stch;
cin >> n;
for(int i = 1; i <= n; ++i)
cin >> s[i];
cin >> stch;
for(int i = 1; i <= n; ++i)
{
if(s[i][0] == stch)
{
vis[i]++;
totLen = s[i].length();
dfs(s[i]);
vis[i]–;
}
}
cout << mxLen;
return 0;
}
1823:【00NOIP提高组】方格取数

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 704 通过数: 530

【题目描述】
设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放人数字0。如下图所示(见样例):

某人从图的左上角的A点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。

此人从A点到B点共走两次,试找出2条这样的路径,使得取得的数之和为最大。

【输入】
输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。

【输出】
只需输出一个整数,表示2条路径上取得的最大的和。

【输入样例】
8
2 3 13
2 6 6
3 5 7
4 4 14
5 2 21
5 6 4
6 3 15
7 2 14
0 0 0
【输出样例】
67
题解:

#include
#include
#include
#include
#include
#define ll long long
using namespace std;
const int maxn=55;
ll sum[maxn][maxn][maxn][maxn];
int n;
int x,y,z;
ll a[maxn][maxn];
int main(){

scanf(“%d”,&n);
while(scanf(“%d%d%d”,&x,&y,&z)==3 &&x&&y&&z){
a[x][y]=z;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int h=1;h<=n;h++)
for(int k=1;k<=n;k++){
int temp1=max(sum[i-1][j][h-1][k],sum[i][j-1][h][k-1]);

         int temp2=max(sum[i-1][j][h][k-1],sum[i][j-1][h-1][k]);sum[i][j][h][k]=max(temp1,temp2)+a[i][j];if(i!=h && j!=k) sum[i][j][h][k]+=a[h][k];}cout<<sum[n][n][n][n];return 0;

}

1824:【01NOIP提高组】一元三次方程求解

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1206 通过数: 816

【题目描述】
有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。

提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。

【输入】
一行,即输入a,b,c,d

【输出】
一行,三个实根

【输入样例】
1 -5 -4 20
【输出样例】
-2.00 2.00 5.00
题解:

#include
#include
using namespace std;
int main()
{
double a,b,c,d;
scanf(“%lf%lf%lf%lf”,&a,&b,&c,&d);
for(double x=-100;x<=100;x+=0.01)
{
if(abs(axxx+bxx+cx+d)<=0.00001)printf("%.2f ",x);
}
return 0;
}
1825:【01NOIP提高组】数的划分

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1114 通过数: 818

【题目描述】
将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。

例如:n=7,k=3,下面三种分法被认为是相同的。

1,1,5; 1,5,1; 5,1,1;

问有多少种不同的分法。

【输入】
输入n和k (6<n<=200,2<=k<=6)

【输出】
一个整数,即不同的分法数。

【输入样例】
7 3
【输出样例】
4
【提示】
样例说明:

四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;

题解:

#include<bits/stdc++.h>
using namespace std;
int n,k,a[15],tot;
void dfs(int num,int pos)
{
if(pos==k)
if(num>=a[pos-1])
{
tot++;
return;
}
for(int i=a[pos-1];i<=num&&num/(k-pos)>=i;i++)
{
a[pos]=i;
dfs(num-i,pos+1);
a[pos]=0;
}
}
int main()
{
a[0]=1;
cin>>n>>k;
dfs(n,1);
cout<<tot;
return 0;
}
1826:【01NOIP提高组】统计单词个数

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 403 通过数: 202

【题目描述】
给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可包含this和is,选用this之后就不能包含th)(这里的不能再用指的是位置,不是字母本身。比如thisis可以算做包含2个is)。

单词在给出的一个不超过6个单词的字典中。

要求输出最大的个数。

【输入】
第一行有二个正整数(p,k),p表示字串的行数,k表示分为k个部分。

接下来的p行,每行均有20个字符。

再接下来有一个正整数s,表示字典中单词个数。(1<=s<=6)

接下来的s行,每行均有一个单词。

【输出】
一个整数,最大单词个数。

【输入样例】
1 3
thisisabookyouareaoh
4
is
a
ok
sab
【输出样例】
7
题解:

#include
#include
#include
#include
#include
using namespace std;
int n,p,m;
char s[300],word[20][210];
int sa[300][300];//从i到j之间有几个单词
bool tf[300];
int f[300][300];//从1到i,切成j段的最多单词数
int main()
{
scanf(“%d%d”,&n,&p);
for(int i=0;i<n;i++)
{
scanf(“%s”,s+i20+1);
}
scanf(“%d”,&m);
for(int i=1;i<=m;i++)
{
scanf(“%s”,word[i]);
for(int j=1;j<i;j++)
if(!strcmp(word[i],word[j])) {i–;m–;break;}//去重
}
//暴力求sa
for(int i=1;i<=n
20;i++)
for(int j=1;j<=n20;j++)
{
memset(tf,0,sizeof(tf));
for(int k=1;k<=m;k++)
{
int len=strlen(word[k]);
for(int u=i;u<=j-len+1;u++)
{
if(tf[u]) continue;
int flag=0;
for(int v=0;v<len;v++)
if(s[u+v]!=word[k][v]){flag=1;break;}
if(flag==0){sa[i][j]++;tf[u]=1;}
}
}
}
//DP
for(int k=1;k<=p;k++)
for(int i=1;i<=20
n;i++)
{
for(int j=k-1;j<=i-1;j++)
{
f[i][k]=max(f[i][k],f[j][k-1]+sa[j+1][i]);
}
}
printf(“%d\n”,f[20*n][p]);
}
1827:【01NOIP提高组】Car的旅行路线

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 358 通过数: 185

【题目描述】
又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第i个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。

图例

机场

高速铁路

机航线

注意:图中并没有

标出所有的铁路与航线。

那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。

任务

找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少。

【输入】
第一行为一个正整数n(0≤n≤10),表示有n组测试数据。

每组的第一行有四个正整数s,t,A,B。

S(0<S≤100)表示城市的个数,t表示飞机单位里程的价格,A,B分别为城市A,B的序号,(1≤A,B≤S)。

接下来有S行,其中第i行均有7个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的(xi1,yi1),(xi2,yi2),(xi3,yi3)分别是第I个城市中任意三个机场的坐标,Ti为第i个城市高速铁路单位里程的价格。

【输出】
共有n行,每行一个数据对应测试数据。

【输入样例】
1
3 10 1 3
1 1 1 3 3 1 30
2 5 7 4 5 2 1
8 6 8 8 11 6 3
【输出样例】
47.55
题解:

#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
int n,s,t,A,B,T[maxn<<2];
double dis[maxn<<2];
bool book[maxn<<2];
struct data{
int city;
int x,y;
}a[maxn<<2];
inline int power_2(int x)
{
return xx;
}
void getlast(int x1,int y1,int x2,int y2,int x3,int y3,int i)
{
int x4,y4;
int dis1=power_2(x1-x2)+power_2(y1-y2),
dis2=power_2(x1-x3)+power_2(y1-y3),
dis3=power_2(x2-x3)+power_2(y2-y3);
if(dis2dis1+dis3) x4=x3-x2+x1,y4=y3+y1-y2;
if(dis1dis2+dis3) x4=x2-x3+x1,y4=y2+y1-y3;
if(dis3==dis1+dis2) x4=x3-x1+x2,y4=y3+y2-y1;
a[i+3].x=x4;a[i+3].y=y4;
}
inline double distance(int x1,int y1,int x2,int y2)
{
return sqrt(power_2(x1-x2)+power_2(y1-y2));
}
void SPFA()
{
memset(book,0,sizeof(book));
queue q;
for(int i=1;i<=s<<2;i++) dis[i]=99999999;
for(int i=A
4-3;i<=A4;i++) dis[i]=0,q.push(i),book[i]=1;
while(!q.empty())
{
int u=q.front();q.pop();book[u]=0;
for(int i=1;i<=s<<2;i++)
{
if(iu) continue;
double cost=distance(a[i].x,a[i].y,a[u].x,a[u].y);
if(a[i].citya[u].city) cost
=T[a[i].city];
else cost*=t;
if(dis[i]>dis[u]+cost)
{
dis[i]=dis[u]+cost;
if(!book[i])
{
book[i]=1;
q.push(i);
}
}
}
}
}
void init()
{
//memset(t,0,sizeof(t));
memset(a,0,sizeof(a));
scanf(“%d%d%d%d”,&s,&t,&A,&B);
int i;
for(i=1;i<=s<<2;i+=4)
{
//int x1,x2,x3,y1,y2,y3;
scanf(“%d%d%d%d%d%d%d”,&a[i].x,&a[i].y,&a[i+1].x,&a[i+1].y,&a[i+2].x,&a[i+2].y,&T[i/4+1]);
a[i].city=a[i+1].city=a[i+2].city=a[i+3].city=i/4+1;
getlast(a[i].x,a[i].y,a[i+1].x,a[i+1].y,a[i+2].x,a[i+2].y,i);
}
}
int main()
{
scanf(“%d”,&n);
int i;
for(i=1;i<=n;i++)
{
init();
SPFA();
double ans=dis[B<<2];
for(int j=B4-3;j<B4;j++) if(ans>dis[j]) ans=dis[j];
printf(“%.2lf\n”,ans);
}
return 0;
}

1828:【02NOIP提高组】均分纸牌

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1174 通过数: 919

【题目描述】
有N堆纸牌,编号分别是1,2,3,…N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的牌只能移到编号为N-1的堆上;其余堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆纸牌数都一样多。例如N=4,4堆纸牌数分别为:

①9 ②8 ③17 ④6

移动3次可达到目的:从 ③取4张牌放到④(9 8 13 10)–>从③取3张牌放到②(9 11 10 10)–>从②取1张牌放到 ①(10 10 10 10)。

【输入】
N (N堆纸牌,1≤N≤100)

A1,A2,…,An(N堆纸牌.每堆纸牌初始数,1≤Ai≤10000)

【输出】
所有堆均达到相等时的最少移动次数。

【输入样例】
4
9 8 17 6
【输出样例】
3
题解:

#include
#define maxn 100005
using namespace std;
int n,sum=0,mid,ans=0;
int a[maxn];

int main()
{
scanf(“%d”,&n);
for(int i=1;i<=n;i++)
{
scanf(“%d”,&a[i]);
sum+=a[i];
}
mid=sum/n;

for(int i=1;i<=n;i++)
{if(a[i]>mid) a[i+1]+=a[i]-mid,ans++;if(a[i]<mid) a[i+1]-=mid-a[i],ans++;
}
printf("%d",ans);
return 0;

}
1829:【02NOIP提高组】自由落体

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 594 通过数: 204

【题目描述】
在高为H的天花板上有n个小球,体积不计,位置分别为0,1,2,…。在地面上有一个小车(长为L,高为K,距原点距离为S1)。已知小球下落距离计算公式为s=1/2gt2,其中g=10,t为下落时间。地面上的小车以速度V前进。如图:

小车与所有小球同时开始运动,当小球距小车的距离≤0.00001时,即认为小球被小车接受(小球落到地面后不能被接受)。请你计算出小车能接受到多少个小球。

【输入】
H,S1,v,L,k,n (1≤H,S1,v,L,k,n≤100000,各个数之间用一个空格隔开)

【输出】
小车能接受到的小球个数。

【输入样例】
5.0 9.0 5.0 2.5 1.8 5
【输出样例】
1
题解:

#include
#include
#include
#include
#include
#define eps 1e-5
#define rps 1e-6
using namespace std;
double H,S1,V,L,K;
int n;
int main()
{
scanf(“%lf%lf%lf%lf%lf%d”,&H,&S1,&V,&L,&K,&n);
double yu=S1-sqrt(H/5.0)*V-eps;int p=(int)yu;
if(yu-p>rps) p++;
double y=H-K-sqrt(eps);y=max(0.0,y);
y=S1+L-sqrt(y/5.0)*V+eps;int q=(int)y;
p=max(p,0);q=min(n-1,q);
printf(“%d”,max(0,q-p+1));
}

1830:【02NOIP提高组】矩形覆盖

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 235 通过数: 171

【题目描述】
在平面上有n个点(n≤100),每个点用一对整数坐标来表示。例如:当n=4时,4个点的坐标分别为:P1(1,1),P2(2,2),P3(6,3),P4(7,0)

这些点可以用k个矩形(k<4)全部覆盖,矩形的边平行于坐标轴。如图一,当k=2是,可用如图二的两个矩形s1,s2覆盖,s1,s2面积和为4。问题是当n个点坐标和k给出后,怎样才能使得覆盖所有点的k个矩形的面积之和为最小呢。约定:

◇ 覆盖一个点的矩形面积为0;

◇ 覆盖平行于坐标轴直线上点的矩形面积也为0;

◇ 各个矩形间必须完全分开(边线也不能重合);

【输入】
第一行为n和k,接下来为n行,每行两个数,中间用空格隔开,且0≤xi,yi≤500

【输出】
一行,一个整数,即满足条件的最小的矩形面积之和。

【输入样例】
4 2
1 1
2 2
6 3
7 0
【输出样例】
4
题解:

#include
#include
#include
#include
#include
#define INF 1e7
using namespace std;
int n,k;
struct node{
int x,y;
}sa[60];
struct node2{
node l,r;
}sb[10];
int ans=INF;
bool checkit(int i,int j)
{
if(sb[i].l.xINF||sb[i].l.yINF||sb[i].r.x==-INF||sb[i].r.y==-INF)
return 0;
if(sb[j].l.xINF||sb[j].l.yINF||sb[j].r.x==-INF||sb[j].r.y==-INF)
return 0;
if(sb[i].l.x>sb[j].r.x||sb[i].l.y>sb[j].r.y)
return 0;
if(sb[j].l.x>sb[i].r.x||sb[j].l.y>sb[i].r.y)
return 0;
return 1;
}
bool check()
{
for(int i=1;i<=k;i++)
{
for(int j=i+1;j<=k;j++)
{
if(checkit(i,j)) return 0;
}
}
return 1;
}
int getsqr()
{
int ans1=0;
for(int i=1;i<=k;i++)
{
if(sb[i].l.x!=INF)
{
ans1+=(sb[i].r.x-sb[i].l.x)*(sb[i].r.y-sb[i].l.y);
// printf(“%d %d\n”,(sb[i].r.x-sb[i].l.x),(sb[i].r.y-sb[i].r.y));
}

}
return ans1;

}
void dfs(int now)
{
//printf(“%d\n”,now);
if(now==n+1)
{
ans=getsqr();
return;
}
int x=sa[now].x,y=sa[now].y;

for(int i=1;i<=k;i++)
{node2 tmp=sb[i];
/*  sb[i].l.x=min(sb[i].l.x,x);sb[i].l.y=min(sb[i].l.y,y);sb[i].r.x=max(sb[i].r.x,x);sb[i].r.y=max(sb[i].r.y,y);*/if(sb[i].l.x>sa[now].x)  sb[i].l.x=sa[now].x;  if(sb[i].l.y>sa[now].y)  sb[i].l.y=sa[now].y;  if(sb[i].r.x<sa[now].x)  sb[i].r.x=sa[now].x;  if(sb[i].r.y<sa[now].y)  sb[i].r.y=sa[now].y; if(check()&&getsqr()<ans)dfs(now+1);sb[i]=tmp;
}

}
int main()
{
scanf(“%d%d”,&n,&k);
for(int i=1;i<=n;i++)
scanf(“%d%d”,&sa[i].x,&sa[i].y);
for(int i=1;i<=k;i++)
{
sb[i].l.x=sb[i].l.y=INF;
sb[i].r.x=sb[i].r.y=-INF;
}
dfs(1);
printf(“%d\n”,ans);
}

00NOIP-02NOIP题解相关推荐

  1. 信息学奥赛一本通 1314:【例3.6】过河卒(Noip2002) | 1921:【02NOIP普及组】过河卒 | 洛谷 P1002 [NOIP2002 普及组] 过河卒

    [题目链接] ybt 1314:[例3.6]过河卒(Noip2002) ybt 1921:[02NOIP普及组]过河卒 洛谷 P1002 [NOIP2002 普及组] 过河卒 [题目考点] 1. 坐标 ...

  2. 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换

    [题目链接] ybt 1820:[00NOIP提高组]进制转换 洛谷 P1017 [NOIP2000 提高组] 进制转换 注意:两OJ上题目内容相同,输入输出要求不同 [题目考点] 1.数制 [解题思 ...

  3. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数

    [题目链接] ybt 1919:[02NOIP普及组]选数 洛谷 P1036 [NOIP2002 普及组] 选数 [题目考点] 1.排列组合 2.深搜(子集树) 3.质数 [解题思路] 深搜(子集树) ...

  4. 信息学奥赛一本通 1911:【00NOIP普及组】税收与补贴问题 | 洛谷 P1023 [NOIP2000 普及组] 税收与补贴问题

    [题目链接] ybt 1911:[00NOIP普及组]税收与补贴问题 洛谷 P1023 [NOIP2000 普及组] 税收与补贴问题 [题目考点] 1. 枚举 2. 数学 3. 二分查找 [解题思路] ...

  5. 信息学奥赛一本通 1910:【00NOIP普及组】计算器的改良 | 洛谷 P1022 [NOIP2000 普及组] 计算器的改良

    [题目链接] ybt 1910:[00NOIP普及组]计算器的改良 洛谷 P1022 [NOIP2000 普及组] 计算器的改良 [题目考点] 1. 字符数组 2. 一元一次方程 3. 模拟 [解题思 ...

  6. 信息学奥赛一本通 1087:级数求和 | 1918:【02NOIP普及组】级数求和 | OpenJudge NOI 1.5 27

    [题目链接] ybt 1087:级数求和 ybt 1918:[02NOIP普及组]级数求和 OpenJudge NOI 1.5 27:级数求和 [题目考点] 1. 循环.求和 [解题思路] 设加和变量 ...

  7. 信息学奥赛一本通 1220:单词接龙 | 1913:【00NOIP普及组】单词接龙 | OpenJudge NOI 2.5 8783 | 洛谷 P1019 [NOIP2000 提高组] 单词接龙

    [题目链接] ybt 1220:单词接龙 ybt 1913:[00NOIP普及组]单词接龙 OpenJudge NOI 2.5 8783:单词接龙 洛谷 P1019 [NOIP2000 提高组] 单词 ...

  8. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  9. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

最新文章

  1. (转)事务是什么,以及事务四个特性
  2. java程序安装_java实现可安装的exe程序
  3. python命令行输入参数_Python3.x那些事儿:[3]命令行参数传递
  4. tfw文件如何导入cad_如何将CAD的线稿导入PS并和底色分离
  5. 脚本自动定时打开链接_自动化构建系统
  6. 那些和闰年相关的 Bug
  7. 使用ETags减少Web应用带宽和负载
  8. ROS学习笔记基础1(Ubuntu16.04安装ROS和依赖包)
  9. 三菱5uplc伺服电机指令_?2020/9/12三菱PLC触摸屏控制POWSD-伺服电机
  10. Excel百“练“成钢,从题库随机抽取题目 V 2.0版本
  11. C++解决八数码问题
  12. 好家伙?阿里网盘的分享功能已经出来了?
  13. Win11家庭版远程桌面不支持怎么办
  14. 中学计算机论文题目,中学计算机相关论文题目 中学计算机论文标题如何定
  15. 微服务弹性伸缩与负载均衡
  16. 进口计算机软件,关于软件进口报关手续及流程介绍【进口知识】
  17. 曾经觉得学习晦涩难懂的我是如何爱上linux
  18. python中pass的含义_python中pass语句意义与作用(实例分析)
  19. 这笔投资你算过吗?―写给二本院校的苦逼青年
  20. 信息学奥赛一本通(C++版)第一部分 C++语言 第五章 数组

热门文章

  1. Hibernate-validator(HV)异常
  2. 上白泽慧音 解题报告
  3. 用NPOI操作EXCEL-NPOI计算公式-通过NPOI获得公式的返回值
  4. 面试:浏览器内核的作用及常见浏览器内核
  5. 猫狗分类代码,小白适宜
  6. unix网络编程之socket函数
  7. 2021年熔化焊接与热切割报名考试及熔化焊接与热切割模拟考试题
  8. Netflix DGS Note
  9. Echarts 实现动态数据时间轴
  10. Postman系列(七)-查看接口响应