zoukankan      html  css  js  c++  java
  • Daliy Algorithm -- day 60

    Nothing to fear

    those times when you get up early and you work hard; those times when you stay up late and you work hard; those times when don’t feel like working — you’re too tired, you don’t want to push yourself — but you do it anyway. That is actually the dream. That’s the dream. It’s not the destination, it’s the journey. And if you guys can understand that, what you’ll see happen is that you won’t accomplish your dreams, your dreams won’t come true, something greater will. mamba out


    那些你早出晚归付出的刻苦努力,你不想训练,当你觉的太累了但还是要咬牙坚持的时候,那就是在追逐梦想,不要在意终点有什么,要享受路途的过程,或许你不能成就梦想,但一定会有更伟大的事情随之而来。 mamba out~

    2020.4.19


    A

    提前判定一共有多少情况
    1.当 a == b ans = 0
    2.当 a > b 时:
    当a b都为奇数 或者a b 都为偶数可以直接一步得到
    否则先执行一次操作将两数变为同性质在进行变换
    当 a < b 时:
    当a b都为奇数 或者或者 a b都为偶数:必须要先将一个
    变换成另外性质的数 在进行加上一个奇数
    其余都是一次变换

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #include <cmath>
    using namespace std;
    
    
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    
    int t;
    
    void work()
    {
    	int a , b;
    	cin >> a >> b;
    	// a只能加上奇数或者减去偶数
    	if(a == b){
    		cout << 0 << endl;
    		return ;
    	}
    	if(a > b)
    	{
    		if((a%2==0 && b%2==0) || (a%2!=0 && b%2!=0))cout << 1 << endl;
    		else cout << 2 << endl;
    	}else{
    		if((a%2==0 && b%2==0) || (a%2!=0 && b%2!=0))cout << 2 << endl;
    		else cout << 1 << endl;
    	}
    }
    int main()
    {
    	cin >> t;
    	while(t--)
    	{
    		work();
    	}
    }
    

    B

    由于是进行相邻变换排序联想到冒泡排序的做法
    需要将每次冒泡排序时交换的j 记录下来最后对照给定的
    变换规则看是否有漏掉的 如果没有即可变换成功否则失败

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #include <cstring>
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    
    using namespace std;
    const int N = 1005;
    int a[N] , q[N];
    int vis[N];
    bool v[N];
    int t;
    void slove()
    {
    	memset(vis, 0 , sizeof vis);
    	memset(v , 0 , sizeof v);
    	memset(a , 0 , sizeof a);
    	memset(q , 0 , sizeof q);
    	int n , m;
    	cin >> n >> m;
    	for(int i=1;i<=n;i++){
    		cin >> a[i];
    	}	
    	int tmp = 0;
    	for(int i=0;i<m;i++){
    		cin >> q[i];
    		v[q[i]] = 1;
    	}
    	for(int i = 1;i <= n ;i ++)
    	{
    		for(int j = 1;j <= n - i;j++)
    		{
    			if(a[j] > a[j+1])
    			{
    				int x = a[j];
    				a[j] = a[j+1];
    				a[j+1] = x;	
    				vis[j]++;
    			}
    		}
    	}
    	// 检测一下是否存在没有在 q中得也被++
    	for(int i=0;i<N;i++)
    	{
    		if(v[i] == 0 && vis[i] > 0){
    			cout<< "NO" << endl;
    			return;
    		}
    	}
    	cout << "YES" << endl;
    }
    int main()
    {
    	SIS;
    	cin >> t;
    	while(t--)
    	{
    		slove();
    	}
    }
    

    C

    有的题目看似暴力 实际上排序之后就会有许多优美得性质

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    #define lowbit(x) (x & -x)
    using namespace std;
    typedef long long ll;
    const int N = 200005;
    int t , n , m;
    void slove()
    {
    	cin >> n >> m;
    	int q[N];
    	int ans[30];
    	char s[N];
    	memset(q , 0 , sizeof q);
    	memset(ans , 0 ,sizeof ans);
    	for(int i = 1;i <= n ;i ++)
    	{
    		cin >> s[i];
    		ans[s[i] - 'a' + 1]++;
    	}
    	for(int i = 1;i <= m;i ++)cin >> q[i];
    	sort(q + 1,q + 1 + m);
    	int i = 1,j = 1;
    	while(j <= m)
    	{
    		int k = m - j + 1;
    		while(i <= q[j] && i <= n)
    		{
    			ans[s[i] - 'a' + 1] += k;
    			i++;
    		}
    		j++;
    	}
    	for(int i = 1;i <= 26 ;i ++)
    	{
    		cout << ans[i] << " ";
    	}
    	cout << endl;
    }
    int main()
    {
    	SIS;
    	cin >> t;
    	while(t--)
    	{
    		slove();
    	}
    }
    

    At:A

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    
    using namespace std;
    typedef long long ll;
    #define PAI 3.14159265358979323846
    const int MAX = 0x7ffffff;
    int t;
    
    int main()
    {
    	SIS;
    	double r;
    	cin >> r;
    	printf("%.20f
    ", 2 * PAI * r); 
    }
    

    At:B

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    
    using namespace std;
    typedef long long ll;
    const int MAX = 0x7ffffff;
    int n , m;
    void slove()
    {
    	cin >> n >> m;
    	ll sum = 0;
    	int x = 0;
    	for(int i = 0;i < m ;i ++)
    	{
    		cin >> x;
    		sum += x;
    	}
    	if(n - sum >= 0)cout << n - sum << endl;
    	else cout << -1 << endl;
    }
    int main()
    {
    	SIS;
    	slove();
    }
    

    At:C

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    #include <string>
    #define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    
    using namespace std;
    typedef long long ll;
    const int N = 200005;
    const int MAX = 0x7ffffff;
    int n , m;
    int a[N];
    void slove()
    {
    	cin >> n;
    	int x = 0;
    	for(int i = 1;i <= n - 1 ;i ++)
    	{
    		cin >> x;
    		a[x]++;
    	}
    	for(int i = 1;i <= n ;i ++)
    	{
    		cout << a[i] << endl;
    	}
    }
    int main()
    {
    	SIS;
    	slove();
    }
    
  • 相关阅读:
    设置SSH编码为中文
    深入浅出REST架构 REST架构概述
    RESTful Web Services初探
    Linux 基础命令
    Linux 目录和文件操作
    Linux 压缩文件的命令行总结
    Linxu 监控命令总结
    Linux 下Tomcat的启动、关闭、杀死进程
    Linux日知录(常用问题笔记)
    linux 下远程连接mysql命令详解
  • 原文地址:https://www.cnblogs.com/wlw-x/p/12734522.html
Copyright © 2011-2022 走看看