SCUPC 2017 初赛部分题解(4540 4541 4546 4543)
初赛只写出点水题,其他时间一直在RE......突然 Clion 没法用也是醉。
4540 数进球
这题没啥好说的,只恨没先看到。
下面是 C 代码: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main() {
int i, j, m, n;
int a[10];
while ( scanf( "%d%d", &m, &n ) != EOF ) {
memset( a, 0, sizeof(a) );
for ( i = n; i >= m; i-- ){
j = i;
while ( j ){
a[j % 10]++;
j /= 10;
}
}
for ( i = 0; i < 10; i++ )
printf( "%d ", a[i] );
printf( "\n" );
}
return(0);
}
4541 暴风雨之后的景观水道
开始想用线段树,结果发现......数据规模这么小,直接开数组啊233
下面是 C 代码: 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
int tree[10005];
int main()
{
int count;
int lcount,qcount;
int l,r;
int i;
int countt;
scanf("%d",&count);
while (count--) {
scanf("%d%d",&lcount,&qcount);
memset(tree,0,sizeof(tree));
countt=0;
while (qcount--) {
scanf("%d%d",&l,&r);
for (i=l;i<=r;i++) tree[i]=1;
}
for (i=0;i<lcount;i++) countt+=tree[i];
printf("%d\n",lcount-countt+1);
}
return 0;
}
4546 塞尔达的加基森之旅
背包。在存的时候就可以先模m(其实并没什么卵用)。
下面是 C++ 代码: 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
using namespace std;
int lis[50];
int main(){
int t,n,m,temp,flag,sum;
scanf("%d",&t);
while (t--) {
scanf("%d%d",&n,&m);
for (int i=0;i<n;i++) {
scanf("%d",&temp); lis[i]=temp%m;
}
sort(lis,lis+n);
flag=0;sum=0;
for (int i=n-1;i>=0;i--) {
if (sum+lis[i]==m){flag=1;break;}
if (sum+lis[i]<m) sum+=lis[i];
}
printf("%s\n",flag?"Yes":"No");
}
}
4543 方巍大佬
话说前几天还看到了方巍大佬的真容...... 又话说前几天就看到了这个丢杯子的题......结果并没有写出来...... 队友做的。
下面是 C++ 代码: 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
using namespace std;
long a[51][51];
int main ()
{
for(int i=1;i<51;i++)
{
a[1][i]=i;
a[i][1]=1;
}
for(int i=2;i<51;i++)
{
for(int j=2;j<51;j++)
{
a[i][j]=a[i][j-1]+1+a[i-1][j-1];
}
}
int T;
cin>>T;
for(int i=0;i<T;i++)
{
int m;int n;
cin>>m>>n;
cout<<a[m][n]<<endl;
}
}