Gym - 101982A 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) A. Exam

题面

题意:你和朋友一起做了n道判断题,现在你知道你们两的答案,也知道你朋友对了k个,问你至少对了几个

题解:假设你和朋友n个答案都一样,那你是不是也对了k个,假设你和朋友有1个答案不一样,是不是,你至少对了k-1个,

        如果你和朋友有x(x<=k)个不一样,最坏就是他刚好这x个都是对的,所以你只能对k-x个了

        如果你和朋友有x(x>n-k)个不一样,最坏就是n-x个一样的都是错的,剩下k-(n-x)个才是对的

        综合来看,如果你们有x个一样的,你就至少有n-abs(k-x)个是对的

 1 #include
 2 using namespace std;
 3 int k,len,tot;
 4 char s[1005],t[1005];
 5 int main()
 6 {
 7     scanf("%d",&k);
 8     scanf("%s%s",s,t);
 9     len=strlen(s);
10     for (int i=0;i)
11         if (s[i]==t[i]) tot++;
12     printf("%d\n",len-abs(k-tot));
13 }

 

转载于:https://www.cnblogs.com/qywhy/p/10614230.html

你可能感兴趣的:(Gym - 101982A 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) A. Exam)