6 条题解

  • 2
    @ 2024-4-7 11:02:44
    #include<map>
    #include<utility>
    using namespace std;
    map<string,string>ma;
    pair<string,string>p;
    int main()
    {
        int m, n, a;
        string s,t,str;
        cin>>n>>m;
        while(n--)
        {
            cin>>s>>t;
            p.first = s;
            p.second = t;
            ma.insert(p);
        }
        while(m--)
        {
            cin>>a>>str;
            if(a==1)
            {
                if(ma.find(str)!=ma.end())
                {
                    cout<<ma[str];
                }
                else{
                    cout<<"NO";
                }
            }
            if(a==2)
            {
                if(str<=(ma.begin()->first))
                {
                    cout<<"NO";
                }
                else
                {
                    auto it = ma.lower_bound(str);
                    it--;
                    cout<<it->second;
                }
            }
            if(a==3)
            {
                if(str>=((--ma.end())->first))
                {
                    cout<<"NO";
                }
                else
                {
                    auto it = ma.upper_bound(str);
                    cout<<it->second;
                }
            }
            cout<<endl;
        }
    }
    
    • 1
      @ 2025-1-4 16:57:46

      #include<iostream> #include<map> #include<string> using namespace std; int main() { map<string, string> mp; string name, number; int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> name >> number; mp[name] = number; } for (int i = 1; i <= m; i++) { string x; int c; cin >> c >> x; if (c == 1) { auto it = mp.find(x); if (it != mp.end()) { cout << it->second << endl; } else cout << "NO" << endl; } else if (c == 2) { auto it = mp.lower_bound(x); if (it != mp.begin()) { --it; cout << it->second << endl; } else cout << "NO" << endl; } else if (c == 3) { auto it = mp.upper_bound(x); if (it != mp.end()) { cout << it->second << endl; } else cout << "NO" << endl; } } return 0; }

      • 0
        @ 2025-4-9 17:08:45
        import java.util.*;
        import java.io.*;
        
        public class Main{
            public static void main(String[] args)throws IOException{
                BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                StringTokenizer st = new StringTokenizer(in.readLine());
                int n = Integer.parseInt(st.nextToken());
                int m = Integer.parseInt(st.nextToken());
                TreeMap<String,String> map = new TreeMap<>();
        
                for(int i=0;i<n;i++){
                    StringTokenizer st2 = new StringTokenizer(in.readLine());
                    String name = st2.nextToken();
                    String number = st2.nextToken();
                    map.put(name,number);
                }
        
                for(int i=0;i<m;i++){
                    StringTokenizer st2 = new StringTokenizer(in.readLine());
                    int j = Integer.parseInt(st2.nextToken());
                    String name = st2.nextToken();
                    if(j==1){
                        System.out.println(map.getOrDefault(name,"NO"));
                    }
                    else if(j==2){
                        String lower = map.lowerKey(name);
                        if(lower == null)   System.out.println("NO");
                        else System.out.println(map.getOrDefault(lower,"NO"));
                        
                    }
                    else if(j==3){
                        String higher = map.higherKey(name);
                        if(higher == null)   System.out.println("NO");
                        else System.out.println(map.getOrDefault(higher,"NO"));
                    }
        
                }
            }
        }
        
        • 0
          @ 2025-3-3 10:29:00
          #include <iostream>
          #include <map>
          #include <string>
          
          using namespace std;
          
          int main() {
              int n, m;
              cin >> n >> m;
              map<string, string> users;
          
              for(int i = 0; i < n; i++) {
                  string name, num;
                  cin >> name >> num;
                  users[name] = num;
              }
          
              for(int i = 0; i < m; i++) {
                  int c;
                  string name;
                  cin >> c >> name;
          
                  if(c == 1) {
                      auto it = users.find(name);
                      if(it != users.end()) {
                          cout << it->second << endl;
                      } else {
                          cout << "NO" << endl;
                      }
                  } else if(c == 2) {
                      auto it = users.lower_bound(name);
                      if(it != users.begin()) {
                          --it;
                          cout << it->second << endl;
                      } else {
                          cout << "NO" << endl;
                      }
                  } else if(c == 3) {
                      auto it = users.upper_bound(name);
                      if(it != users.end()) {
                          cout << it->second << endl;
                      } else {
                          cout << "NO" << endl;
                      }
                  }
              }
          
              return 0;
          }
          
          • 0
            @ 2025-1-16 22:48:54
            #include <bits/stdc++.h>
            
            using namespace std;
            
            map<string,string> m;
            
            int main()
            
            {
            
            	int n,k;
            
            	string name,tel;
            
            	cin>>n>>k;
            
            	for(int i=0;i<n;i++)
            
            	{
            
            		cin>>name>>tel;
            
            		m[name]=tel;
            
            	}
            
            	while(k--)
            
            	{
            
            		int c;
            
            		string x;
            
            		cin>>c>>x;
            
            		if(c==1){
            
            			auto it = m.find(x);
            
            			if(it!=m.end()) cout<<it->second<<endl;
            
            			else cout<<"NO"<<endl;
            
            		}else if(c==2){
            
            			auto it = m.lower_bound(x);
            
            			if(it!=m.begin()){
            
            				--it;
            
            				cout<<it->second<<endl;
            
            			}else cout<<"NO"<<endl;
            
            		}else if(c==3){
            
            			auto it = m.upper_bound(x);
            
            			if(it!=m.end()){
            
            				cout<<it->second<<endl;
            
            			}else cout<<"NO"<<endl;
            
            		}
            
            	}
            
            	return 0;
            
            }
            
            • 0
              @ 2024-4-5 13:35:29

              用文档中给的代码总有一个测试点TLE,故自己写了一个,成功AC。

              #include <iostream>
              #include <algorithm>
              
              using namespace std;
              
              int main()
              {
                  int n, t[1000100];
                
                  cin >> n;
              
                  for (int i = 0; i < n; i++)
                      scanf("%d", &t[i]);
                
                  sort(t, t + n);
                  printf("%d", t[0]);
              
                  for (int i = 1; i < n; i++)
                      if (t[i] != t[i - 1])
                          printf(" %d", t[i]);
                  puts("");
              }
              
              • 1

              信息

              ID
              68
              时间
              1000ms
              内存
              256MiB
              难度
              8
              标签
              递交数
              1240
              已通过
              229
              上传者