题目入口
A - AB C(枚举)
# include <bits/stdc++.h>
# define inf 0x7fffffff
# define ll long long
# define int long long
# define eps 1e-8
using namespace std;
const int mod= 1e9 + 7 ;
const int M= 2e3 + 5 ;
const int N= 2 * 1e5 + 5 ;
int n;
int ans;
signed main ( )
{
cin>> n;
for ( int i= 1 ; i<= n; i++ ) for ( int j= 1 ; j<= n/ i; j++ ) ans+= ( n/ i) / j;
cout<< ans;
return 0 ;
}
B - AB C(真是没想到,可以找规律)
# include <bits/stdc++.h>
# define inf 0x7fffffff
# define ll long long
# define int long long
# define eps 1e-8
using namespace std;
const int mod= 1e9 + 7 ;
const int M= 2e3 + 5 ;
const int N= 2 * 1e5 + 5 ;
int v[ N] ;
int cnt, pos= 1 ;
int power ( int a, int b, int p)
{
int sum= 1 % p;
while ( b)
{
if ( b& 1 ) sum= ( sum% p) * ( a% p) % p;
a= ( a% p) * ( a% p) % p;
b>>= 1 ;
}
return sum% p;
}
signed main ( )
{
int a, b, c;
cin>> a>> b>> c;
a%= 10 ;
if ( a== 1 || a== 0 || a== 5 )
{
cout<< a<< endl;
return 0 ;
}
if ( a== 4 )
{
if ( b& 1 ) puts ( "4" ) ;
else puts ( "6" ) ;
return 0 ;
}
b= power ( b, c, 4 ) ;
if ( ! b) b= 4 ;
cout<< power ( a, b, 10 ) ;
return 0 ;
}
C - String Invasion(贪心、特判)
# include <bits/stdc++.h>
# define inf 0x7fffffff
# define ll long long
# define int long long
# define eps 1e-8
using namespace std;
const int mod= 1e9 + 7 ;
const int M= 2e3 + 5 ;
const int N= 1e6 + 5 ;
char s[ N] ;
map < char , int > v;
int ans, last;
char ch= '.' ;
signed main ( )
{
scanf ( "%s" , s+ 1 ) ;
int sz= strlen ( s+ 1 ) ;
last= sz;
for ( int i= sz; i>= 1 ; i-- )
{
if ( i> sz- 2 )
{
v[ s[ i] ] ++ ;
continue ;
}
if ( s[ i] == s[ i+ 1 ] && s[ i] != s[ i+ 2 ] )
{
if ( ch== s[ i] ) ans+= max ( last- i- v[ s[ i] ] , ( int ) 0 ) ;
else ans+= max ( sz- i- v[ s[ i] ] , ( int ) 0 ) ;
ch= s[ i] ;
while ( ch== s[ i] && i>= 1 ) i-- ;
last= i;
v. clear ( ) ;
}
v[ s[ i] ] ++ ;
}
cout<< ans;
return 0 ;
}
D - Sky Reflector
# include <bits/stdc++.h>
# define inf 0x7fffffff
# define ll long long
# define int long long
# define eps 1e-8
using namespace std;
const int mod= 1e9 + 7 ;
const int M= 2e3 + 5 ;
const int N= 1e6 + 5 ;
int n, m, k;
int ans;
int p= 998244353 ;
int power ( int a, int b)
{
int sum= 1 % p;
while ( b)
{
if ( b& 1 ) sum= ( sum% p) * ( a% p) % p;
a= ( a% p) * ( a% p) % p;
b>>= 1 ;
}
return sum% p;
}
signed main ( )
{
cin>> n>> m>> k;
if ( n* m== 1 )
{
cout<< k;
return 0 ;
}
if ( n== 1 || m== 1 )
{
cout<< power ( k, max ( n, m) ) ;
return 0 ;
}
for ( int i= k; i>= 1 ; i-- ) ans= ( ans+ power ( k- i+ 1 , m) * ( power ( i, n) - power ( i- 1 , n) + p) % p) % p;
cout<< ans;
return 0 ;
}