USACO Chapter 1 Section 1.2

不知道为什么感觉1.2比1.1反而简单不少

 1 /*
 2 ID:xiekeyi1
 3 PROG:milk2
 4 LANG:C++
 5  */
 6 #include<bits/stdc++.h>
 7 using namespace std ;
 8 const int MAXN = 5010;
 9 struct point
10 {
11     int begin , end ;
12 } a[MAXN] ;
13
14
15 bool cmp( struct point a , struct point b )
16 {
17     if( a.begin < b.begin)
18         return true ;
19     else if( a.begin == b.begin && a.end < b.end )
20         return true ;
21     else
22         return false ;
23 }
24 int main()
25 {
26     freopen("milk2.in","r",stdin);
27     freopen("milk2.out","w",stdout);
28
29     int n ;
30     cin >> n ;
31     for( int i = 1 ; i <= n ; i++)
32         cin >> a[i].begin >> a[i].end ;
33     sort(a+1,a+1+n,cmp) ;
34     int ans1= 0 , ans2 = 0 ;
35     int tem_begin = a[1].begin , tem_end= a[1].end;
36     ans1 = max( tem_end - tem_begin , ans1 );
37     for( int i = 2 ; i <=n ; i++)
38     {
39         if( a[i].begin <= tem_end)
40         {
41             tem_end = max( tem_end , a[i].end)  ;
42         }
43         else
44         {
45             ans1 = max(ans1 , tem_end - tem_begin ) ;
46             ans2 =max( ans2 , a[i].begin - tem_end) ;
47
48             tem_begin = a[i].begin;
49             tem_end = a[i].end ;
50         }
51     }
52
53     cout << ans1 << ‘ ‘ << ans2 << endl ;
54     return 0 ;
55 }

Milking Cows

  1 /*
  2 ID:xiekeyi1
  3 PROG:transform
  4 LANG:C++
  5 */
  6 #include<bits/stdc++.h>
  7 using namespace std ;
  8 //#define DEBUG
  9 const int maxn = 15 ;
 10 char a[maxn][maxn] , b[maxn][maxn] ,  c[maxn][maxn];
 11 //template<typename T>
 12 //void swap( T &a , T &b )
 13 //{
 14 //    T c ;
 15 //    c = a ;
 16 //    a = b ;
 17 //    b = a  ;
 18 //    return ;
 19 //}
 20
 21 bool judge( char a[maxn][maxn] , char b[maxn][maxn] , int &n )
 22 {
 23     for( int i = 1 ; i <= n ; i++)
 24         for( int j = 1 ; j <= n ; j++)
 25             if( a[i][j] != b[i][j] )
 26                 return false ;
 27     return true ;
 28 }
 29
 30
 31 int rolate( int &n )
 32 {
 33     for( int i = 1 ; i <= n ; i++)
 34     {
 35         for( int j = 1 ; j <= n ; j++)
 36         {
 37             c[j][n-i+1] = a[i][j] ;
 38         }
 39     }
 40     if( judge( c , b , n ) )
 41         return 1 ;
 42
 43     for( int i = 1  ; i <= n ; i++)
 44     {
 45         for( int j = 1 ; j <= n ; j++)
 46         {
 47             c[n-i+1][n-j+1] = a[i][j] ;
 48         }
 49     }
 50     if( judge ( c , b , n ) )
 51         return 2;
 52
 53     for( int i = 1 ; i <= n ; i++)
 54     {
 55         for( int j = 1 ; j <= n ; j++)
 56         {
 57             c[n-j+1][i] = a[i][j] ;
 58         }
 59     }
 60
 61     if( judge ( c , b , n ) )
 62         return 3 ;
 63     for( int i = 1 ; i <= n ; i++)
 64         for( int j = 1 ; j <= n ; j++)
 65             c[i][j] = a[i][j] ;
 66     for( int i = 1 ; i <= n ; i++)
 67     {
 68         for( int j = 1 ; j <= n / 2 ; j++)
 69         {
 70             swap( c[i][j] , c[i][n-j+1]) ;
 71         }
 72     }
 73     if( judge( c , b , n ) )
 74         return 4 ;
 75
 76     //    for( int i = 1 ; i  <= n ; i++)
 77     //        for( int j = 1 ;  j <=n ; j++)
 78     //            c[i][j] = a[i][j] ;
 79 #ifdef DEBUG
 80     for( int i = 1 ; i <= n ; i++)
 81     {
 82         for( int j = 1 ; j <= n ; j++)
 83             cout << c[i][j];
 84         cout << endl ;
 85     }
 86     cout << endl << endl ;
 87 #endif
 88     char d[maxn][maxn];
 89     for( int i = 1 ; i <= n ; i++)
 90         for( int j = 1 ; j <= n ; j++)
 91             d[j][n-i+1] = c[i][j] ;
 92 #ifdef DEBUG
 93     for( int i = 1 ; i <= n ; i++)
 94     {
 95         for( int j = 1 ; j <= n ; j++)
 96             cout << d[i][j] ;
 97         cout << endl ;
 98     }
 99     cout << endl << endl ;
100 #endif
101     if( judge( d , b , n ) )
102         return 5 ;
103     for( int i = 1 ; i <= n ; i++)
104         for( int j = 1 ; j <= n ; j++)
105             d[n-i+1][n-j+1] = c[i][j] ;
106 #ifdef DEBUG
107     for( int i = 1 ; i <= n ; i++)
108     {
109         for( int j = 1 ; j <= n ; j++)
110             cout << d[i][j] ;
111         cout << endl ;
112     }
113     cout << endl << endl ;
114 #endif
115     if( judge( d , b , n ) )
116         return 5 ;
117     for( int i = 1 ; i <= n ; i++)
118         for( int j = 1 ; j <= n ; j++)
119             d[n-j+1][i] = a[i][j] ;
120 #ifdef DEBUG
121     for( int i = 1 ; i <= n ; i++)
122     {
123         for( int j = 1 ; j <= n ; j++)
124             cout << d[i][j] ;
125         cout << endl ;
126     }
127     cout << endl << endl ;
128 #endif
129     if( judge( d , b , n ) )
130         return 5 ;
131
132     if( judge( a , b , n ) )
133         return 6 ;
134
135     return 7 ;
136
137 }
138
139
140
141 int main()
142 {
143     freopen("transform.in","r",stdin);
144     freopen("transform.out","w",stdout) ;
145     int n ;
146     cin >> n ;
147     char ch ;
148     for( int i = 1 ; i <= n ; i++)
149         for( int j = 1 ; j <=n ; j++)
150         {
151             cin >> ch ;
152             a[i][j] = ch ;
153         }
154
155     for( int i = 1 ; i <= n ; i++ )
156         for( int j = 1 ; j <= n ; j++)
157         {
158             cin >> ch ;
159             b[i][j] = ch ;
160         }
161
162     cout << rolate(n) << endl ;
163     return 0 ;
164 }

Transformations

 1 /*
 2 ID:xiekeyi
 3 PROG:namenum
 4 LANG:C++
 5  */
 6 #include<bits/stdc++.h>
 7 #include<iostream>
 8 using namespace std ;
 9
10 int f( char ch )
11 {
12     if( ch < ‘Q‘ )
13         return ( ch - ‘A‘  + 1 + 2 ) / 3 + 1 ;
14     else
15         return ( ch - ‘A‘ + 1 + 1 ) / 3 + 1 ;
16
17 }
18
19 long long func( string &s)
20 {
21     long long ans = 0 ;
22     for( int i = 0 ; i < s.size() ; i++)
23         ans = ans*10 + f(s[i]) ;
24     return ans ;
25 }
26
27 int main()
28 {
29     ifstream fin ;
30     freopen("namenum.out","w",stdout);
31     fin.open("namenum.in",fstream::in);
32     long long n ;
33     fin >> n ;
34     string s ;
35     fin.close() ;
36     fin.open("dict.txt",fstream::in);
37     bool flag = false ;
38     while( fin >> s )
39         if( func(s) == n )
40         {
41             cout << s << endl ;
42             flag = true ;
43         }
44     if( !flag )
45         cout << "NONE" << endl ;
46     fin.close() ;
47     return 0 ;
48 }

Name That Number

 1 /*
 2 ID:xiekeyi1
 3 PROG:palsquare
 4 LANG:C++
 5  */
 6 #include<bits/stdc++.h>
 7 using namespace std ;
 8 const int maxn = 1000;
 9 int a[maxn] , b[maxn] ;
10
11
12
13 void translate( int n ,  int B , int flag , int &d )
14 {
15     int digit = 0 ;
16     while( n != 0 )
17     {
18         if( flag == 1 )
19             a[digit++] = n % B ;
20         else
21             b[digit++] = n % B ;
22         n /= B ;
23     }
24     d = digit ;
25     return ;
26
27 }
28
29 bool judge( int b[] , int d )
30 {
31     for( int i = 0 ; i <= d / 2 ; i++)
32         if( b[i] != b[d-i-1] )
33             return false ;
34     return true ;
35 }
36
37
38 ostream& p( int b[] ,  int d )
39 {
40     for( int i = d - 1 ; i >= 0 ; i--)
41     {
42         if( b[i] < 10 )
43             cout << b[i] ;
44         else
45             cout << static_cast<char> (  b[i] - 10 + ‘A‘ ) ;
46     }
47     return cout ;
48 }
49
50 int main()
51 {
52     freopen("palsquare.in","r",stdin);
53     freopen("palsquare.out","w",stdout);
54     int B ;
55     cin >> B ;
56     for( int i = 1 ; i <= 300 ; i++)
57     {
58         int d1 = 0 , d2 = 0 ;
59         int t = i * i ;
60         translate( t , B , 2 , d2 ) ;
61         if( judge( b , d2 ) )
62         {
63             translate( i , B , 1 , d1 ) ;
64             p(a,d1) << ‘ ‘ ;
65             p(b,d2) << endl ;
66
67         }
68     }
69
70     return 0 ;
71 }

Palindromic Squares

 1 /*
 2 ID:xiekeyi1
 3 PROG:dualpal
 4 LANG:C++
 5  */
 6 #include<bits/stdc++.h>
 7 using namespace std ;
 8 const int maxn = 100 ;
 9 int a[maxn] ;
10
11
12 void f( int a[] , int n ,  int b , int &d )
13 {
14     int digit = 0 ;
15     while( n != 0 )
16     {
17         a[digit++] = n % b ;
18         n /= b ;
19     }
20     d = digit ;
21     return ;
22 }
23
24 bool  judge( int a[] , int d )
25 {
26     for( int i = 0 ; i <= d/2 ; i++)
27         if( a[i] != a[ d-i-1] )
28             return false ;
29     return true ;
30 }
31 int main()
32 {
33
34     freopen("dualpal.in","r",stdin);
35     freopen("dualpal.out","w",stdout);
36     int n , s ;
37     cin >> n >> s ;
38     int i = 0 ;
39     int temp = s+1 ;
40     for( i = 0 ; i < n ;  )
41     {
42         int flag = 0 ;
43         for( int j = 2 ; j <= 10 ; j++)
44         {
45             int d = 0 ;
46             f(a,temp,j,d);
47             if( judge( a , d ) )
48                 flag++;
49             if( flag >= 2 )
50             {
51                 cout << temp << endl ;
52                 i++;
53                 break ;
54             }
55         }
56         temp++;
57     }
58     return 0 ;
59 }
60
61         

Dual Palindromes

时间: 2024-10-11 03:16:14

USACO Chapter 1 Section 1.2的相关文章

USACO Chapter 1 Section 1.1

USACO的题解和翻译已经很多了... 我只是把自己刷的代码保存一下. 1.PROB Your Ride Is Here 1 /* 2 ID:xiekeyi1 3 PROG:ride 4 LANG:C++ 5 */ 6 7 #include<bits/stdc++.h> 8 using namespace std ; 9 10 int main() 11 { 12 freopen("ride.in","r",stdin); 13 freopen(&quo

USACO Chapter 1 Section 1.3

1 /* 2 ID:xiekeyi1 3 PROG:milk 4 LANG:C++ 5 */ 6 7 #include<bits/stdc++.h> 8 using namespace std ; 9 10 const int maxm = 5050 ; 11 12 struct P 13 { 14 int price ; 15 int amount ; 16 }a[maxm]; 17 18 bool cmp( struct P a , struct P b ) 19 { 20 return

USACO(含training section)水题合集[5/未完待续]

(1) USACO2.1 Ordered Fractions 枚举 排序即可,注意1/1 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int N=165,L=1e5; struct fr{ int a,b; fr(int q=0,int w=1):a(q),b(w){} }f[L]; int n,cnt

USACO CHAPTER 1 1.1 Ride 水题

水题,主要是学习文件输入输出. 1 /* 2 ID: ijustwa1 3 LANG: C++ 4 TASK: ride 5 */ 6 #include<cstdio> 7 #include<cstring> 8 9 using namespace std; 10 11 const int base=16; 12 const int mod=47; 13 14 char s[10]; 15 char t[10]; 16 17 int main() 18 { 19 FILE *fin

USACO Chapter 1 解题总结

1.1.1 Your Ride Is Here 基本字符串操作,无压力. 1.1.2 Greedy Gift Givers 基础模拟题,弄明白题意,不怕麻烦,就OK了. 1.1.3 Friday the Thirteenth 自己的做法:三维数组代表年月日,400的数据范围不大,模拟走一下时间的流逝过程即可.时间复杂度O(N*12*31),多好玩. 官方标程好像用到了一个神奇的公式,好像是什么蔡勒公式. 1.1.4 Broken Necklace 2*N的拆环,枚举断点找即可.在找的过程中先要解

CHAPTER 2 Database Environment

Chapter Objectives   (章节目标) In this chapter you will learn:  (在本章中,你将学习:) The purpose and origin of the three-level database architecture.  (三层数据库的架构和起源.) The contents of the external, conceptual, and internal levels. (外部.概念.内部层次的内容.) The purpose of

【转】LaTeX 符号命令大全

函数.符号及特殊字符 声调 语法 效果 语法 效果 语法 效果 \bar{x} \acute{\eta} \check{\alpha} \grave{\eta} \breve{a} \ddot{y} \dot{x} \hat{\alpha} \tilde{\iota} 函数 语法 效果 语法 效果 语法 效果 \sin\theta \cos\theta \tan\theta \arcsin\frac{L}{r} \arccos\frac{T}{r} \arctan\frac{L}{T} \sin

【LaTeX】E喵的LaTeX新手入门教程(2)基础排版

换了块硬盘折腾了好久..联想的驱动真坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇文档框架嗯昨天我们已经编写了一个最基本的文档,其内容是这样的:\documentclass{article}\begin{document}XXX is a SB.\end{document}这个文档呢其实是分为两部分的:一部分是\begin{document}之前的那部分也就是第一行,这一部分我们称之为导言区.导言区的内容可以不只一行,它的作用是完成文档的基础设定.比如在这个文档中,我们使用

LaTex 入门2

以book模板为例: \documentclass{book} \usepackage{amsmath} \begin{document} \title{This is my book} \author{kirchhoff} \date{} %用于去掉maketitle默认输入的日期 \maketitle \tableofcontents %生成目录 \mainmatter %表示文章正文部分开始了,这样能影响目录的起始页码 \part{elementary} %part1 \chapter{i