Open zwwhdls opened 5 years ago
A 题就是两个人平分三份糖果,保最后两人一样多,全加起来除以 2,再向下取整。
代码不贴了。
题意:给你 n 个数据,把他们分成 k 组,每组和为奇数,如果满足不了要求,就输出 NO,如果可以分,输出 YES 和任何一种分法。 思路:找出所有奇数所在位置,组成数组 result[],该数组长度为 l;
package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { input := bufio.NewReader(os.Stdin) var num int _, err := fmt.Fscanf(input, "%d\n", &num) if err != nil { } for num > 0 { num -= 1 var n, k, j int _, err := fmt.Fscanf(input, "%v %v\n", &n, &k) if err != nil { } var arr = make([]int, n) var result = make([]string, n) for i := 0; i < n; i++ { _, err := fmt.Fscanf(input, "%v", &arr[i]) if err != nil { } if arr[i]%2 == 1 { result[j] = strconv.Itoa(i + 1) j++ } } _, err = fmt.Fscanf(input, "\n") if err != nil { } if j < k || (j-k)%2 != 0 { fmt.Println("NO") continue } fmt.Println("YES") total := result[:k-1] total = append(total, strconv.Itoa(n)) fmt.Println(strings.Join(total, " ")) } }
总结:Go 语言获取输入要用 bufio,否则数据量大起来就超时了。
A 题
A 题就是两个人平分三份糖果,保最后两人一样多,全加起来除以 2,再向下取整。
代码不贴了。
B 题
题意:给你 n 个数据,把他们分成 k 组,每组和为奇数,如果满足不了要求,就输出 NO,如果可以分,输出 YES 和任何一种分法。 思路:找出所有奇数所在位置,组成数组 result[],该数组长度为 l;
总结:Go 语言获取输入要用 bufio,否则数据量大起来就超时了。