![](https://img.haomeiwen.com/i4013569/163adfe363f9502b.png)
![](https://img.haomeiwen.com/i4013569/b6f0390b95f520f8.png)
190分,第一题0分了,没查出来问题
第一题
![](https://img.haomeiwen.com/i4013569/bc20f708fca2134b.png)
![](https://img.haomeiwen.com/i4013569/201d8bb454112b09.png)
#include<iostream>
#include<cstdio>
#define NR 1000000
using namespace std ;
int x[NR + 10] ;
int y[NR + 10] ;
long long s[NR + 10] ;
int main()
{
int n ;
scanf("%d" , &n) ;
for ( int i = 1 ; i <= n ; i++)
scanf("%d%d" , x + i , y + i) ;
for ( int i = 1 ; i <= n ; i++)
s[i] = x[i] * x[i] + y[i] * y[i] ;
int max = 0 , num = 0;
for ( int i = 1 ; i <= n ; i++)
{
if ( s[i] > max)
{
max = s[i] ;
num = i ;
}
}
printf("%d\n" , num) ;
return 0 ;
}
[第二题]https://nanti.jisuanke.com/t/40788
过了
![](https://img.haomeiwen.com/i4013569/2cf791f5239888f8.png)
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std ;
bool isprime(int x)
{
if ( x == 1) return false ;
if ( x == 2 ) return true ;
if ( x % 2 == 0) return false ;
for ( int i = 3 ; i <= sqrt(x) ; i += 2)
if ( x % i == 0) return false ;
return true ;
}
int weishu(int x)
{
int sum = 0 ;
while(x != 0)
{
x /= 10 ;
sum++ ;
}
return sum ;
}
bool ishuiwen(int x)
{
int a[6] ;
int s = 0 ;
while ( x != 0 )
{
s++ ;
a[s] = x % 10 ;
x /= 10 ;
}
if (s == 5)
{
if ((a[1] == a[5]) && (a[2] == a[4]) )
return true ;
return false ;
}
if (s == 3)
{
if ( a[1] == a[3]) return true ;
return false ;
}
if (s == 1)
{
return true ;
}
}
int main()
{
int r , l , ans = 0 ;
scanf("%d%d" , &l , &r) ;
for ( int i = l ; i <= r ; i++)
{
if ( i == 11) ans++ ;
if ( (weishu(i) % 2 ) == 0) continue ;
if ( !isprime(i)) continue ;
if ( ishuiwen(i))
{
ans++ ;
}
}
printf("%d\n" , ans) ;
return 0 ;
}
第三题 有一个数据测试点错误,如何发现?
#include<iostream>
#include<cstdio>
using namespace std ;
int edge[1005][1005] ;
bool flag[1005] ;
int min_ = 1e7 ;
void addedge(int x , int y , int z)
{
edge[x][y] = z ;
return ;
}
void dfs(int now , int mubiao , int tired , int poi)
{
if ( tired >= min_) return ;
if ( now == mubiao )
{
if ( tired < min_) min_ = tired ;
return ;
}
poi++ ;
flag[now] = true ;
for ( int i = 2 ; i <= mubiao ; i++)
{
if ( edge[now][i] == 0 ) continue ;
if ( flag[i] == true ) continue ;
int tired_new = tired + poi * edge[now][i] ;
dfs(i , mubiao , tired_new , poi) ;
}
flag[now] = false ;
return ;
}
int main()
{
int n , m ;
scanf("%d%d" , &n , &m) ;
for ( int i = 1 ; i <= m ; i++)
{
int x , y , z ;
scanf("%d%d%d" , &x , &y , &z) ;
addedge(x , y , z) ;
}
dfs(1 , n , 0 , 0) ;
printf("%d\n" , min_) ;
return 0 ;
}
网友评论