zoukankan      html  css  js  c++  java
  • Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)


    链接

    签到题,求出位数,然后9*(位数-1)+ 从位数相同的全一开始加看能加几次的个数
    
    #include<bits/stdc++.h>
     using namespace std;
    
     int main(int argc, char const *argv[])
     {
     	int t;
     	int y;
     	cin>>t;
     	int ans = 0;
     	while(t--)
     	{
     		cin>>y;
     		ans = 0;
     		int weishu = 0;
     		int temp = y;
     		while(temp>0)
     		{
     			weishu++;
     			temp/=10;
     		}
     		ans += (weishu-1)*9;
     		temp = 1;
     		for (int i = 1; i < weishu; ++i)
     		{
     			temp = temp*10+1;
     		}
     		for (int i = temp; i <= y; i += temp)
     		{
     			ans++;
     		}
     		cout<<ans<<endl;
     	}
     	
     	return 0;
     }
    


    链接

    思路,用堆来维护所有的偶数,每次取最大的来除以二,但是需要在处理的时候去重。用STL的优先队列就可
    
    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(int argc, char const *argv[])
    {
    	//数的数量啊
    	//排序一波?
    	priority_queue<int> q;
    	int t;
    	cin>>t;
    	while(t--)
    	{
    		int n;
    		cin>>n;
    		int num;
    		int flag = 0;
    		for (int i = 0; i < n; ++i)
    		{
    			cin>>num;
    			if (!(num%2)) //不是奇数,插入就行
    			{
    				q.push(num);
    				flag++;
    			}
    		}
    		if(flag)
    		{
    			int top = q.top();
    			int ans = 0;
    			int cur = 0;
    			q.pop();
    			ans++;
    			if (!((top/2)%2))
    			{
    				q.push(top/2);
    			}
    			while(!q.empty())
    			{
    				cur = q.top();
    				//cout<<cur<<endl;
    				q.pop();
    				if (cur == top)
    					continue;
    				else  //不是重复了哈
    				{
    					top = cur;
    					ans++;
    					if (!((top/2)%2))
    					{
    						q.push(top/2);
    					}
    				}
    
    			}
    			cout<<ans<<endl;
    		}
    		else
    			cout<<"0"<<endl;
    
    		
    	}
    
    	return 0;
    }
    



    链接

    思考一下,因为two和one,是可能出现连起来出现的,所以先扫描一遍所有的twone这种的,去掉中间的o,然后再扫描一次把剩下的one和two
    去掉中间那个字母就行。
    
    #include<bits/stdc++.h>
    
    
    using namespace std;
    char s[150001];
    
    int del[150001];
     int main(int argc, char const *argv[])
     {
     	ios::sync_with_stdio(false);
     	std::vector<int> a;
     	int t;
     	cin>>t;
     	while(t--)
     	{
     		cin>>s;
     		int ans = 0;
     		a.clear();
     		//memset(del, 0, sizeof(del));
     		int len = strlen(s);
     		for (int i = 0; i < len; ++i)
     		{
     			del[i]=0;
     		}
     		for (int i = 2; i < len-2; ++i)
     		{
     			if (s[i]=='o')
     			{
     					if (s[i-2]=='t'&&s[i-1]=='w'&&s[i+1]=='n'&&s[i+2]=='e')
     					{
     						//s.erase(i,1);
     						a.push_back(i+1);
     						del[i] = 1;
     						//cout<<i<<" ";
     						++ans ;
     					}
     			}
     		}
     		for (int i = 1; i <=len-2; ++i)
     		{
     			if (s[i]=='w')
     				{
     					if (s[i-1]=='t'&&s[i+1]=='o'&&!del[i+1])
     					{
     						del[i]=1;
     						a.push_back(i+1);
     						++ans;
     						//cout<<i<<" ";
     					}
     				}
     				if (s[i]=='n')
     				{
     					if (s[i-1]=='o'&&s[i+1]=='e'&&!del[i-1])
     					{
     						del[i]=1;
     						a.push_back(i+1);
     						++ans;
     						//cout<<i<<" ";
     					}
     				}
     		}
     		cout<<ans<<endl;
     		for (int i = 0; i < ans; ++i)
     		{
     			cout<<a[i]<<' ';
     		}
     		cout<<endl;
     	}
     	
    
     	return 0;
     }
    

    未完待续~

  • 相关阅读:
    hibernate中对象的3种状态:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
    object references an unsaved transient instance
    前端JS利用canvas的drawImage()对图片进行压缩
    js获取上传图片的尺寸大小
    多线程经典问题1——主线程子线程交替问题
    hdu 1689 Alien’s Necklace (bfs层次图剪枝)
    新炬数据库大师—暑期公益体验课
    怎样高速地安装Ubuntu SDK
    Spring boot 整合spring Data JPA+Spring Security+Thymeleaf框架(上)
    iOS 合并.a文件,制作通用静态库
  • 原文地址:https://www.cnblogs.com/Crossea/p/12059164.html
Copyright © 2011-2022 走看看