zoukankan      html  css  js  c++  java
  • 对于vijos11.2模拟赛

    特意起了个傻逼标题,只是想提醒一下自己以后不要犯逗(所以应该没有什么神犇点进来吧?)

    T1,T3 当场写的时候就觉得是不可写的,看了题解之后还是觉得不可写,人弱没办法。到了这个时候也懒得管这么难的东西了

    MARK一下T2和T4好了

    最近很少写字符串,T2应该算是个教训吧;

    读换行符的时候 getchar();

    读一整行(带空格)的字符串用 getline(s,cin);

    读下一行的时候,不需要再getchar()了

    顺便复习下...

    但是这题有个很坑的地方,就是组数T后面是有空格的,而且还不止一个QAQ

    所以,在读完T之后需要while(c==getchar()==' ');

    细节get√

    附上自己的傻逼程序:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    #include <string>
    using namespace std;
    int T;
    char c;
    string s;
    int a[10],ans;
    int main(){
    	//freopen("data.txt","r",stdin);
    	scanf("%d",&T);
        while((c=getchar())==' ');
    	for(int k=1;k<=T;k++){
    		memset(a,0,sizeof(a));
    		getline(cin,s);
    		int l=s.size();
    		for(int i=0;i<l;i++){
    			if(s[i]==' ') a[1]++;
    			if(s[i]=='g') a[2]++;
    			if(s[i]=='o') a[3]++;
    			if(s[i]=='d') a[4]++;
    			if(s[i]=='m') a[5]++;
    			if(s[i]=='r') a[6]++;
    			if(s[i]=='n') a[7]++;
    			if(s[i]=='i') a[8]++;
    		}
    		a[2]/=2;
    		a[3]/=3;
    		a[7]/=2;
    		sort(a+1,a+9);
    		ans=a[1];
    		printf("Case #%d: %d
    ",k,ans);
    	}
    	return 0;
    }
    

    T4:暴力+找规律;

    之前傻逼理解错题意,暴力打挂了

    顺便傻逼地提一下自己在哪里打错了好了

    首先是特别傻逼,看不懂什么是64位无符号整数;(unsigned long long 几百年不用,连拼都不懂拼)

    然后是不太懂位运算,打暴力的时候居然 dfs(x+1,(~sum)^a[x+1])之类的都写得出来,我也是醉了= = sum还能(~sum)?!...

    之后又特别犯逗的在输入的,for i=1~n cout<<a[i];(我是傻逼= =)

    妈蛋,再这么逗下去,noip爆零都会QAQ

    其实这题我也只会打打暴力,不懂用啥

    看了题解才知道,原来是暴力+找规律!

    随机n==8的情况,发现最小值都为0,。也就是说在暴力正确的情况,n=8已经有办法得到0了,那么当n>8的时候,必然可以选择将后面的数全都用&连接,答案仍然为0;

    所以对于n>7的情况,我们直接可以得到答案为0,n<=7的情况,用暴力解决即可;

    MARK:

    1.unsigned long long 输出的时候除了 cout,还可以 %I64u

    2.最小值minx,自己不要乱赋值!因为unsigned long long 很大!自己乱来的情况下,可能会比最小值还小!所以应该赋为 a[1]

    这一点是一定要小心的!

    附上自己的傻逼程序:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int T;
    int n;
    unsigned long long a[101],minx;
    
    void search(int x,unsigned long long  sum){
    	if(x==n){
    		if(sum<minx) minx=sum;
    		return;
    	}
    	else{
    		search(x+1,sum^a[x+1]);
    		search(x+1,sum|a[x+1]);
    		search(x+1,sum&a[x+1]);
    		
    		search(x+1,sum^(~a[x+1]));
    		search(x+1,sum|(~a[x+1]));
    		search(x+1,sum&(~a[x+1]));
    		
    	}
    }
    
    int main(){
    	//freopen("data.txt","r",stdin);
    	scanf("%d",&T);
    	for(int k=1;k<=T;k++){
    		memset(a,0,sizeof(a));
    		scanf("%d",&n);
    		if(n>7){
    			for(int i=1;i<=n;i++) cin>>a[i];
    			printf("Case #%d: %d
    ",k,0);
    		}
    		else{
    	         for(int i=1;i<=n;i++) cin>>a[i];
    		     minx=a[1];
    		     search(1,a[1]);
    		     search(1,(~a[1]));
    		     printf("Case #%d: %I64u
    ",k,minx);
    	}   }
    	return 0;
    }
    
  • 相关阅读:
    注册以及密码验证
    轮播图,渐显,可以左右点击
    节点移动
    数据持久化
    Objective-C Autorelease Pool 的实现原理(转)
    iOS应用架构谈 view层的组织和调用方案(转)
    iOS 开源项目
    iOS开发系列--无限循环的图片浏览器
    富文本常用封装(NSAttributedString浅析)(转)
    OS开发UI篇—ios应用数据存储方式(XML属性列表-plist)(转)
  • 原文地址:https://www.cnblogs.com/polebug/p/4070248.html
Copyright © 2011-2022 走看看