全部评论
100 62.5 70一个小时混出来交卷就去做携程的笔试了
第三题,用例答案0 1 2 3 4 12 23 34 123 1234,random取一个交了10遍过了40。。。。
100,100,10。 跪求第三题解法 第二题AC代码 #include <iostream>
#include <cstring>
#include <cmath>
#include <vector>
#include <algorithm>
#include <vector>
#include <list>
#include <stack>
#include <string>
#include <set>
#include <queue>
#include <climits>
#include <unordered_set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <map>
using namespace std;
typedef long long LL;
const LL mod = 1000000007;
using namespace std;
const int inf = 0x7f7f7f7f;
#define _for(i,l,r) for(int i=(l);i<(r);i++)
int dir[4][2] = {{0,1},{1,0},{-1,0},{0,-1}};
map<string,int> is;
map<string,int> val;
char s[10000];
int main(){
int n;
scanf("%d\n",&n);
string ans_tmp;
_for(j,0,n){
gets(s);
int s_len = strlen(s);
int i = 0;
vector<string> var;
var.clear();
while(i < s_len){
while(i< s_len && s[i] ==' ') i++;
if(i == s_len) break;
char v[10000];
int v_len = 0;
int pre = i;
while(i< s_len && (s[i] != '=' && s[i] != '+')) i++;
while(i>=1 && s[i - 1] == ' ') i--;
for(int k = pre; k < i ;k++){
v[v_len++] = s[k];
}
v[v_len] = '\0';
string tmp(v);
var.push_back(tmp);
while(i<s_len && s[i] == ' ') i++;
i++;
}
int sum = 0;
int flag = 0;
for(int q=1;q<var.size();q++){
if(var[q][0] >='1' && var[q][0] <= '9'){
string tmp = var[q];
int ans = 0;
for(int p = 0;p<tmp.size();p++){
ans = ans * 10 + tmp[p] - '0';
}
sum += ans;
continue;
}
if(var[q][0] == '-'){
string tmp = var[q];
int ans = 0;
for(int p = 1;p<tmp.size();p++){
ans = ans * 10 + tmp[p] - '0';
}
sum += -ans;
continue;
}
if(is[var[q]] == 1){
sum += val[var[q]];
continue;
}
if(is[var[q]] == 0){
flag = 1;
break;
}
}
ans_tmp = var[0];
if(flag == 0){
is[var[0]] = 1;
val[var[0]] = sum;
}
}
if(!is[ans_tmp]){
cout <<"NA"<< endl;
}
else{
cout << val[ans_tmp]<< endl;
}
return 0;
}
感觉是对的,怎么就过了12.5
第二题第三题的用例也太难了吧
100 100 70
100 100 70
楼主,求第一题AC代码。我第一题一直卡在0.7 package one;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int a = n % 9;
int b = n % 4;
int c = a % 4;
if (a != 0 && b != 0 && c != 0 || n < 4) { //肯定没有解
System.out.println(-1);
continue;
}
int min = (n / 4) + 2;//初始化
boolean flag = false;
for (int i = 0; i <= (n / 4); i++) {
for (int j = 0; j <= (n / 9); j++) {
if ((4 * i + 9 * j) == n) {
flag = true;
if ((i + j) < min) {
min = i + j;
}
}
}
}
if (flag) {
System.out.println(min);
} else {
System.out.println(-1);
}
}
}
}
第一题为什么只AC0.6 ? ??牛油们帮忙看看啊
100 100 0
怎么输入到换行符结束啊
120分能进面试吗
第二题什么鬼
只有100 75 10 的路过,哎
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享

